Systems and methods for handovers between cellular networks on an asset gateway device

ABSTRACT

A gateway device for providing a dynamic network activation and/or handover is disclosed herein. The gateway device may activate on a first network associated with a primary network subscription identifier and determine to switch to a secondary network associated with a secondary network subscription identifier. The gateway device may disconnect from the first network and activate on the secondary network. The gateway device may access a cached list of networks for the primary network subscription identifier and scan for available networks while active on the secondary network. Based at least in part on the scan, the gateway device may determine that a second network of the cached list of networks is available. In response, the gateway device can disconnect from the secondary network and connect to the second network.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of priority of U.S. ProvisionalPatent Application No. 63/261,088, filed Sep. 10, 2021, entitled“SYSTEMS AND METHODS FOR HANDOVERS BETWEEN CELLULAR NETWORKS ON AN ASSETGATEWAY DEVICE,” which is hereby incorporated by reference herein in itsentirety and for all purposes. Any and all applications for which aforeign or domestic priority claim is identified in the Application DataSheet as filed with the present application are hereby incorporated byreference under 37 CFR 1.57 for all purposes and for all that theycontain.

TECHNICAL FIELD

Embodiments of the present disclosure relate to gateway devices,sensors, systems, and methods that allow for generation of networkcoverage maps and assisting in dynamic network activation and/orhandovers between cellular networks.

BACKGROUND

The approaches described in this section are approaches that could bepursued, but not necessarily approaches that have been previouslyconceived or pursued. Therefore, unless otherwise indicated, it shouldnot be assumed that any of the approaches described in this sectionqualify as prior art merely by virtue of their inclusion in thissection.

Fleet management devices may provide services such as location tracking,ELD compliance, routing and dispatch, wireless reporting and generatingalerts, and the like.

SUMMARY

The systems, methods, and devices described herein each have severalaspects, no single one of which is solely responsible for its desirableattributes. Without limiting the scope of this disclosure, severalnon-limiting features will now be described briefly.

Further, for fleet management devices used to provide services such aslocating tracking (e.g., global position system (“GPS”) tracking),electronic logging device (“ELD”) compliance, routing and dispatch,wireless reporting and generating alerts, and the like, networkconnectivity is vital. However, when a device relies on a singlesubscription identification module (e.g., a “SIM”) to communicate with awireless provider, network connectivity may not be reliable in certainareas. While currently available network handover systems and methods(e.g., roaming service) do provide a back-up SIM when a primary SIM isunavailable, such static network handover often fails to provideflexible, dynamic wireless network handover that can provide optimalnetwork connectivity and efficiency depending on the location of a fleetmanagement device. Further, while network handover systems enable thehandover of devices between SIMs, when switching between SIMs (e.g.,from a primary SIM to a back-up SIM), the back-up SIM may be sub-optimalfor a particular device. For example, while the back-up SIM may enablenetwork connectivity for the device, the device may have a networkpreference for the primary SIM (e.g., based on a carrier plan).Therefore, a particular device may desire to return to a primary SIMonce the primary SIM reaches a particular level of reliability. Whilecurrently available network handover systems and methods (e.g., roamingservice) do enable a device to switch between a back-up SIM and aprimary SIM, such network handover may require a device to delink fromthe back-up SIM and attempt a connection with the primary SIM. Due tothe delinking process and the subsequent connection attempt with theprimary SIM, it is time consuming and difficult to efficiently completea handover between the back-up SIM and the primary SIM. Additionally,when the primary SIM remains unreliable, the power consumed by thedevice to reconnect with the back-up SIM after the delinking process canbe extensive and the loss in efficiency can be significant, so justdetermining when the device can switch from the back-up SIM to theprimary SIM can be a significant issue.

Embodiments of the present disclosure relate to gateway devices,systems, and methods that allow for dynamic network activation and/orhandovers. Embodiments of the present disclosure further relate tosystems and methods that provide network provider maps to the gatewaydevices, systems, and methods. For example, according to variousembodiments, the present disclosure includes one or more gateway systemsthat provide network communications and include a communication module.The communication module may include a primary network subscriptionidentifier and a secondary network subscription identifier. The gatewaysystem may further include a computer readable storage medium havingprogram instructions embodied therewith. The gateway system may furtherinclude one or more processors that execute the program instructions tocause the gateway system to activate the gateway system on a secondarynetwork using the secondary network subscription identifier. The one ormore processors may further cause the gateway system to access a cachedlist of networks of the primary network subscription identifier. The oneor more processors may further cause the gateway system to, while thegateway system is active on the secondary network, scan for otheravailable networks. The one or more processors may further cause thegateway system to, based on the scan, determine that a network, from thecached list of networks of the primary network subscription identifier,is available. The one or more processors may further cause the gatewaysystem to, in response to determining the network is available,disconnect the gateway system from the secondary network and connect thegateway system on the network using the primary network subscriptionidentifier.

In various embodiments, the one or more processors may further cause thegateway system to identify one or more preferred networks of the primarynetwork subscription identifier. The cached list of networks may includethe one or more preferred networks.

In various embodiments, the one or more processors may further cause thegateway system to identify a current network associated with the primarynetwork subscription identifier. The one or more processors may furthercause the gateway system to dynamically update the cached list ofnetworks based on identifying the current network associated with theprimary network subscription identifier.

In various embodiments, the one or more processors may further cause thegateway system to identify one or more supported networks of the primarynetwork subscription identifier. The one or more processors may furthercause the gateway system to dynamically update the cached list ofnetworks based on identifying the one or more supported networks of theprimary network subscription identifier.

In various embodiments, the one or more processors may further cause thegateway system to identify a group of network subscription identifiers.The group of network subscription identifiers may include the primarynetwork subscription identifier. The one or more processors may furthercause the gateway system to identify supported networks of each of thegroup of network subscription identifiers. The one or more processorsmay further cause the gateway system to dynamically update the cachedlist of networks based on identifying the supported networks of each ofthe group of network subscription identifiers.

In various embodiments, the cached list of networks may include one ormore networks previously utilized by the primary network subscriptionidentifier.

In various embodiments, the cached list of networks may be based atleast in part on a carrier plan with a network carrier associated withthe primary network subscription identifier.

In various embodiments, the one or more processors may further cause thegateway system to activate the gateway system on the network using theprimary network subscription identifier. The one or more processors mayfurther cause the gateway system to determine to switch the gatewaysystem from the network associated with the primary network subscriptionidentifier to the secondary network associated with the secondarynetwork subscription identifier. Activating the gateway system on thesecondary network may be based at least in part on determining to switchthe gateway system from the network associated with the primary networksubscription identifier to the secondary network associated with thesecondary network subscription identifier.

In various embodiments, to scan for other available networks, the one ormore processors may further cause the gateway system to, while thegateway system is inactive on the network, scan for other availablenetworks.

In various embodiments, the one or more processors may further cause thegateway system to determine one or more network characteristics of thenetwork. The one or more network characteristics may include datatransmissibility, data transmission speed, signal strength, signalavailability, signal to noise ratio, or number of dropped calls ordropped communications. Determining that the network is available may bebased on the one or more network characteristics.

In various embodiments, the one or more processors may further cause thegateway system to determine one or more network characteristics of thenetwork. The one or more processors may further cause the gateway systemto compare the one or more network characteristics with one or morenetwork thresholds. Determining that the network is available may bebased at least in part on comparing the one or more networkcharacteristics with the one or more network thresholds.

In various embodiments, activating the gateway system on the network maybe based on a network preference associated with the gateway system. Thenetwork preference may indicate which network subscription identifier ofa plurality of network subscription identifiers is prioritized overother network subscription identifiers of the plurality of networksubscription identifiers.

In various embodiments, the network preference may be based at least inpart on a location of the gateway system or a prior activation of thegateway system on the network.

In various embodiments, activating the gateway system on the network mayinclude activating the gateway system on the network after disconnectingthe gateway system from the secondary network.

In various embodiments, the one or more processors may further cause thegateway system to identify a vehicle metric. The vehicle metric may beassociated with at least one of: cruise control, coasting, acceleratorpedal, idling, anticipating, engine rotations per minute, motorrotations per minute, or motor power. The one or more processors mayfurther cause the gateway system to determine the vehicle metriccorresponds to a particular status. The scan may be based on determiningthe vehicle metric corresponds to the particular status.

In various embodiments, the scan may include a passive scan, an activescan, a continuous scan, a periodic scan, or an aperiodic scan.

In various embodiments, the primary network subscription identifier andthe secondary network subscription identifier may be each associatedwith a same network provider.

In various embodiments, the primary network subscription identifier maybe associated with a first network provider and the secondary networksubscription identifier may be associated with a second networkprovider.

In various embodiments, each of the primary network subscriptionidentifier and the secondary network subscription identifier may includea particular subscriber identification module card, a particularsubscriber identification module profile, or a particular carriersubscription.

According to various embodiments, the present disclosure includes acomputer-implemented method. The computer-implemented method may includeactivating a gateway system on a secondary network using a secondarynetwork subscription identifier. The gateway system may include aprimary network subscription identifier and the secondary networksubscription identifier. The computer-implemented method may furtherinclude accessing a cached list of networks of the primary networksubscription identifier. The computer-implemented method may furtherinclude, while the gateway system is active on the secondary network,scanning for other available networks. The computer-implemented methodmay further include, based on the scan, determining that a network, fromthe cached list of networks of the primary network subscriptionidentifier, is available. The computer-implemented method may furtherinclude, in response to determining the network is available,disconnecting the gateway system from the secondary network andconnecting the gateway system on the network using the primary networksubscription identifier.

BRIEF DESCRIPTION OF THE DRAWINGS

The following drawings and the associated descriptions are provided toillustrate embodiments of the present disclosure and do not limit thescope of the claims. Aspects and many of the attendant advantages ofthis disclosure will become more readily appreciated as the same becomebetter understood by reference to the following detailed description,when taken in conjunction with the accompanying drawings, wherein:

FIG. 1 illustrates a block diagram of an example operating environment100 in which one or more aspects of the present disclosure may operate,according to various embodiments of the present disclosure.

FIG. 2 illustrates a block diagram including an example implementationof a management server, according to various embodiments of the presentdisclosure.

FIG. 3 illustrates a block diagram of an example gateway devices,according to various embodiments of the present disclosure.

FIGS. 4A-4D illustrate example diagram representing an example networkprovider map, according to various embodiments of the presentdisclosure.

FIG. 5 illustrates an example network provider map, according to variousembodiments of the present disclosure.

FIG. 6 illustrates an example method of determining an initial networkprovider for a gateway devices, according to various embodiments of thepresent disclosure.

FIG. 7 illustrates an example method of performing dynamic networkactivations and/or handovers for a gateway devices, according to variousembodiments of the present disclosure.

FIG. 8 illustrates an example method of generating a network providermap, according to various embodiments of the present disclosure.

FIG. 9 illustrates an example cached list of networks, according tovarious embodiments of the present disclosure.

FIG. 10 illustrates a flow diagram for handovers between cellularnetworks, according to various embodiments of the present disclosure.

FIG. 11 illustrates an example method of performing dynamic networkactivations and/or handovers for a gateway device, according to variousembodiments of the present disclosure.

FIG. 12 illustrates an example method of determining available networksof a cached list of networks, according to various embodiments of thepresent disclosure.

DETAILED DESCRIPTION

Although certain preferred embodiments and examples are disclosed below,inventive subject matter extends beyond the specifically disclosedembodiments to other alternative embodiments and/or uses and tomodifications and equivalents thereof. Thus, the scope of the claimsappended hereto is not limited by any of the particular embodimentsdescribed below. For example, in any method or process disclosed herein,the acts or operations of the method or process may be performed in anysuitable sequence and are not necessarily limited to any particulardisclosed sequence. Various operations may be described as multiplediscrete operations in turn, in a manner that may be helpful inunderstanding certain embodiments; however, the order of descriptionshould not be construed to imply that these operations are orderdependent. Additionally, the structures, systems, and/or devicesdescribed herein may be embodied as integrated components or as separatecomponents. For purposes of comparing various embodiments, certainaspects and advantages of these embodiments are described. Notnecessarily all such aspects or advantages are achieved by anyparticular embodiment. Thus, for example, various embodiments may becarried out in a manner that achieves or optimizes one advantage orgroup of advantages as taught herein without necessarily achieving otheraspects or advantages as may also be taught or suggested herein.

I. Overview

As mentioned above, according to various embodiments, the presentdisclosure includes one or more gateway devices that include at least alocation determination module for generating location informationassociated with a gateway device. A gateway device may be attached toeach vehicle in a fleet of vehicles. The location information may beanalyzed by a remote computing system to, for example, determinelocation of the gateway device. The gateway device may include one ormore network subscription identifiers, where each of the one or morenetwork subscription identifiers is associated with a correspondingnetwork provider. The gateway device may further include components forcommunicating with other devices/systems, including via one or morenetworks and/or one or more network providers.

In various embodiments, the gateway devices may be configured toautomatically connect to a remote management server (for example, a“cloud”-based management server), and may transmit data associated withlocation of the gateway devices to the remote management server viawired or wireless communications. The gateway devices may furthercommunicate with the management server or user computing devices, forexample, to provide remote access to the gateway device, providereal-time information from the gateway device, receiveconfigurations/updates, provide interactive graphical user interfaces,and the like.

In various embodiments, the management server may aggregate dataassociated with location and configuration from one or more gatewaydevices, and provide statuses, alerts, analyses, etc., including viainteractive graphical user interfaces that may be accessed via usercomputing devices. The management server may provide interactivegraphical user interfaces through which a user may configure one or moregateway devices.

The gateway device (e.g., a vehicle gateway device) can include multiplenetwork subscription identifiers. Each of the network subscriptionidentifiers may be a particular SIM card, a particular SIM profile(e.g., the network subscription identifiers may be SIM profiles on a SIMcard), a particular carrier subscription, a particular SIM subscription,etc. to enable the gateway device to connect to different networks. Eachof the network subscription identifiers may be utilized to identify thegateway device (e.g., an International Mobile Subscriber Identify (an“IMSI”) associated with the gateway device) and connect the gatewaydevice to different networks based on identifying the gateway device.Each network subscription identifier may be associated with differentnetworks and, based on an activation of the gateway device with aparticular network subscription identifier, the gateway device canutilize the particular network subscription identifier to scan networksassociated with the particular network subscription identifier. Based onidentifying a particular network, the gateway device can utilize theparticular network subscription identifier to send an identifier of thegateway device (e.g., an IMSI) to a wireless network provider associatedwith the network. Based on the identifier of the gateway device, thewireless network provider may enable the gateway device to access thenetwork. Each of the network subscription identifiers may be associatedwith a same wireless network provider or may be associated withdifferent wireless network providers. The gateway device can include adynamic network handover system that can utilize two or more networksubscription identifiers. For example, the dynamic network handoversystem can utilize separate SIM cards and/or separate SIM subscriptionson the same SIM card. The gateway device can be activated on a firstnetwork using a first network subscription identifier or on a secondnetwork associated using a second network subscription identifier. Basedon network preference, a network subscription identifier can bedesignated as the primary network subscription identifier. Further, thedynamic network handover system can detect changes in networkdesirability associated with the two or more network subscriptionidentifiers and automatically perform network handover between a networkassociated with a primary network subscription identifier and a networkassociated with a second network subscription identifier.

The gateway device may have a network preference to be activated on anetwork using the primary network subscription identifier. However,changes in conditions may cause a network handover to occur such thatthe gateway device is disconnected from the network using the primarynetwork subscription identifier and connected to a network using asecond (e.g., back-up) network subscription identifier. As the gatewaydevice may have a network preference to be activated on a network usingthe primary network subscription identifier, while activated on thenetwork using the second network subscription identifier, the gatewaydevice can scan additional networks associated with different networksubscription identifiers to determine if any of the additional networksare available and/or reliable.

In order to determine networks to scan, the gateway device can cache alist of networks that are associated with each network subscriptionidentifier (e.g., one or more back-up network subscription identifiersand a primary network subscription identifier). For example, the gatewaydevice can include a list of a plurality of networks that are preferredor supported networks for the primary network subscription identifier.The gateway device can cache the list of networks for each networksubscription identifier in a local cache of the gateway device andperiodically update, or receive updates for, the list of networks foreach network subscription identifier.

Based on a network preference for a network associated with a primarynetwork subscription identifier, the gateway device may scan, whileactivated on a network associated using a back-up network subscriptionidentifier, the networks of the cached list of networks associated withthe primary network subscription identifier to determine when a networkassociated with the primary network subscription identifier isavailable. For example, the gateway device may be connected to a network(e.g., based on network availability) using a back-up networksubscription identifier (e.g., a non-preferred network subscriptionidentifier) and may scan for networks associated with a primary networksubscription identifier (e.g., a preferred network subscriptionidentifier) to determine when the gateway device can perform a handoverfrom the back-up network subscription identifier to the primary networksubscription identifier. The gateway device can periodically oraperiodically scan networks from the list of networks. Further, thegateway device may determine whether a given network can becharacterized as available based on identified network characteristicsof the network. Based on determining that the network is availableand/or reliable, the gateway device can perform a handover between theback-up network subscription identifier and the primary networksubscription identifier. In order to perform the handover, the gatewaydevice may be disconnected from the network associated with the back-upnetwork subscription identifier and may be connected to an availablenetwork using the primary network subscription identifier.

Various aspects of the present disclosure may individually and/orcollectively provide various technical advantages as described herein,and may overcome various disadvantages of prior systems and methods. Forexample, embodiments of the present disclosure may include gatewaydevices that include built-in wireless and/or wired communicationscapabilities. The gateway devices may automatically establishcommunication with a remote management server, user devices, datasources, and the like. The gateway devices may be remotely and centrallymonitored and configured via the management server, for example, via awired or wireless network. The gateway devices may include locationdetermination module(s), user interface module(s), communicationmodule(s), configurations database, network database, or server databasethat may operate autonomously based on a current configuration. Thegateway device may include one or more determination modules, userinterface modules, communication modules, configurations databases,network databases, server databases, etc.

The gateway devices may transmit location information associated withthe gateway devices to a remote database (for example, via themanagement server and the network). Such location information orconfiguration information may be useable by the management server forproviding further analyses, insights, alerts, summaries, etc. to usersvia interactive graphical user interfaces. The gateway devices mayprovide remote access to live location information via a web-serveroperating on the gateway devices. Additional devices may communicatewith the gateway devices via wired or wireless, direct or networkedcommunications. The gateway devices may provide interactive graphicaluser interfaces to such additional devices, enabling synchronization ofgateway device status at multiple additional devices and/or other userdevices.

Advantageously, according to various embodiments, the present disclosuremay provide a network handover system that provides dynamic networkhandover between a network of a secondary network subscriptionidentifier and a network of a primary network subscription identifierfor gateway devices.

Embodiments of the disclosure will now be described with reference tothe accompanying figures, wherein like numerals refer to like elementsthroughout. The terminology used in the description presented herein isnot intended to be interpreted in any limited or restrictive manner,simply because it is being utilized in conjunction with a detaileddescription of certain specific embodiments of the disclosure.Furthermore, embodiments of the disclosure may include several novelfeatures, no single one of which is solely responsible for its desirableattributes or which is essential to practicing the embodiments of thedisclosure herein described.

Terms

In order to facilitate an understanding of the systems and methodsdiscussed herein, a number of terms are defined below. The terms definedbelow, as well as other terms used herein, should be construed broadlyto include the provided definitions, the ordinary and customary meaningof the terms, and/or any other implied meaning for the respective terms.Thus, the definitions below do not limit the meaning of these terms, butonly provide example definitions.

User Input (also referred to as “Input”): Any interaction, data,indication, etc., received by a system/device from a user, arepresentative of a user, an entity associated with a user, and/or anyother entity. Inputs may include any interactions that are intended tobe received and/or stored by the system/device; to cause thesystem/device to access and/or store data items; to cause the system toanalyze, integrate, and/or otherwise use data items; to cause the systemto update to data that is displayed; to cause the system to update a waythat data is displayed; and/or the like. Non-limiting examples of userinputs include keyboard inputs, mouse inputs, digital pen inputs, voiceinputs, finger touch inputs (for example, via touch sensitive display),gesture inputs (for example, hand movements, finger movements, armmovements, movements of any other appendage, and/or body movements),and/or the like. Additionally, user inputs to the system may includeinputs via tools and/or other objects manipulated by the user. Forexample, the user may move an object, such as a tool, stylus, or wand,to provide inputs. Further, user inputs may include motion, position,rotation, angle, alignment, orientation, configuration (for example,fist, hand flat, one finger extended, etc.), and/or the like. Forexample, user inputs may comprise a position, orientation, and/or motionof a hand or other appendage, a body, a 3D mouse, and/or the like.

Data Store: Any computer readable storage medium and/or device (orcollection of data storage mediums and/or devices). Examples of datastores include, but are not limited to, optical disks (for example,CD-ROM, DVD-ROM, etc.), magnetic disks (for example, hard disks, floppydisks, etc.), memory circuits (for example, solid state drives,random-access memory (RAM), etc.), and/or the like. Another example of adata store is a hosted storage environment that includes a collection ofphysical data storage devices that may be remotely accessible and may berapidly provisioned as needed (commonly referred to as “cloud” storage).

Database: Any data structure (and/or combinations of multiple datastructures) for storing and/or organizing data, including, but notlimited to, relational databases (for example, Oracle databases,PostgreSQL databases, etc.), non-relational databases (for example,NoSQL databases, etc.), in-memory databases, spreadsheets, commaseparated values (CSV) files, eXtendible markup language (XML) files,TeXT (TXT) files, flat files, spreadsheet files, and/or any other widelyused or proprietary format for data storage. Databases are typicallystored in one or more data stores. Accordingly, each database referredto herein (for example, in the description herein and/or the figures ofthe present application) is to be understood as being stored in one ormore data stores. Additionally, although the present disclosure may showor describe data as being stored in combined or separate databases, invarious embodiments such data may be combined and/or separated in anyappropriate way into one or more databases, one or more tables of one ormore databases, etc. As used herein, a data source may refer to a tablein a relational database, for example.

Example Operating Environment

FIG. 1 illustrates a block diagram of an example operating environment100 in which one or more aspects of the present disclosure may operate,according to various embodiments of the present disclosure. Theoperating environment 100 may include one or more user devices 160, amanagement server 150, one or more gateway devices 110, one or more datasources 140, and one or more additional devices 120. The various devicesmay communicate with one another via, for example, one or more networks130, as illustrated.

In general, the gateway device 110 comprises a housing includingprocessor(s), memory, data input/output (I/O) interface(s),communication module(s), location determination module(s),controller(s), and etc. For example, the gateway device 110 may beinstalled to or positioned inside a moving vehicle. The gateway device110 may determine location information associated with the gatewaydevice, determine a current configuration information associated withthe gateway device, and transmit the location information andconfiguration information to the management server based at least inpart on the current configuration of the gateway device 110.

Configurations of the gateway device 110 may include default networkinformation, location determination frequency, organization preferenceinformation, and the like, as described herein.

The default network information, the location information, theconfiguration information, and other types of information associatedwith the gateway device 110 may be stored in a memory of the gatewaydevice 110 (for example, a computer readable storage medium). In someembodiments, such data may be automatically transmitted intermittentlyor continuously from the gateway device 110 to the management server150. The management server 150 may thereby receive location informationand configuration information from multiple gateway devices 110, and mayaggregate and perform further analyses on the location information andconfiguration information from multiple gateway devices 110.

The management server 150 may communicate with the gateway device(s) 110to enable remote, rapid configuration of the gateway device(s) 110. Suchconfiguration may be accomplished via interactive graphical userinterfaces provided by the management server 150. In some embodiments,such interactive graphical user interfaces may be accessible by the userdevice(s) 160. Via the management server 150, and/or directly bycommunication with the gateway device(s) 110, user device(s) 160 mayaccess real-time views of status, location information analysis,configuration information analysis, and the like of the gatewaydevice(s) 110. Communications with the gateway device(s) 110 may beaccomplished via web-servers executing on the gateway devices 110themselves.

In some embodiments, the management server 150 may have access tonetwork subscription information associated with network providers. Thenetwork subscription information may include pricing information,subscription term information, and the like. Based at least in part onthe network subscription information, the management server 150 mayautomatically determine appropriate configuration for the gatewaydevice(s) 110. For example, by comparing network subscriptioninformation associated with network providers, the management server 150may identify a default network provider and network activation andhandover schemes.

In general, the data sources 140 may be any type of database or serverthat can collect and store various types of information, for example,network availability information, network drop information, datatransmissibility information, data transfer speed information, networkconnectivity information, and the like. The data sources 140 may beremote from the management server 150 and may have communicationcapabilities to wireless communication with the management server 150,for example, via the network 130.

The additional device(s) 120 may include sensors, programmable logiccontrollers (PLCs), and other devices that may be capable of generatingand providing the gateway devices 110 real-time or delayed visibilityvia alerts, notifications, and data associated with assets associatedwith the gateway device 110. For example, the asset may be a trailertransported by a vehicle. In this regard, the additional devices 120 getcollect and generate information related to the trailer and suchinformation may include, but not limited to, temperature of the trailer,pressure inside the trailer, video feedback of the trailer, trailer dooroperation, and the like.

In general, the user devices 160 can be any computing device such as adesktop, laptop or tablet computer, personal computer, tablet computer,wearable computer, server, personal digital assistant (PDA), hybridPDA/mobile phone, mobile phone, smartphone, set top box, voice commanddevice, digital media player, and the like. A user device 160 mayexecute an application (for example, a browser, a stand-aloneapplication, etc.) that allows a user to access interactive userinterfaces, view images, analyses, or aggregated data, and/or the likeas described herein. In various embodiments, users may interact withvarious components of the example operating environment 100 (forexample, the management server 150, the gateway device(s) 110, theadditional device(s) 120, etc.) via the user device(s) 160. Suchinteractions may typically be accomplished via interactive graphicaluser interfaces, however alternatively such interactions may beaccomplished via command line, and/or other means.

The network 130 may include any wired network, wireless network, orcombination thereof. For example, the network 130 may be a personal areanetwork, local area network, wide area network, over-the-air broadcastnetwork (for example, for radio or television), cable network, satellitenetwork, cellular telephone network, or combination thereof. As afurther example, the network 130 may be a publicly accessible network oflinked networks, possibly operated by various distinct parties, such asthe Internet. In some embodiments, the network 130 may be a private orsemi-private network, such as a corporate or shared intranet. Thenetwork 130 may include one or more wireless networks, such as a GlobalSystem for Mobile Communications (GSM) network, a Code Division MultipleAccess (CDMA) network, a Long Term Evolution (LTE) network, or any othertype of wireless network. The network 130 can use protocols andcomponents for communicating via the Internet or any of the otheraforementioned types of networks. For example, the protocols used by thenetwork 130 may include Hypertext Transfer Protocol (HTTP), HTTP Secure(HTTPS), Message Queue Telemetry Transport (MQTT), ConstrainedApplication Protocol (CoAP), and the like. Protocols and components forcommunicating via the Internet or any of the other aforementioned typesof communication networks are well known to those skilled in the artand, thus, are not described in more detail herein.

In some embodiments, the network 130 may include an external network, alocal network, or both. The local network can be local to a particularorganization (for example, a private or semi-private network), such as acorporate or shared intranet. In some implementations, devices maycommunicate via the local network without traversing the externalnetwork such as the Internet. In some implementations, devices connectedvia the local network may be walled off from accessing the externalnetwork (for example, the Internet), for example, by a gateway device,unless specifically granted access to the external network. Accordingly,for example, the user device(s) 160 may communicate with the gatewaydevice 110 directly (via wired or wireless communications) or via thelocal network, without traversing the external network. Thus, even ifthe external network is down, or is not currently providing connectivityto the management server 150, the gateway device(s) 110, and the userdevice(s) 160 may continue to communicate and function via the localnetwork (or via direct communications).

As described herein, the gateway devices 110 may be capable of, orconfigured to, communicate via multiple networks 130. Accordingly, whilethe diagram of FIG. 1 include a representation of a single network, itis to be understood that the network 130 may include multiple networks130, each of which may be operated by different network providers, andwhich may utilize different communications technologies, protocols,bands, etc.

In various embodiments, communications among the various components ofthe example operating environment 100 may be accomplished via anysuitable means. For example, the gateway device(s) 110 may communicatewith one another, the additional device(s) 120, the data sources 140,the management server 150, and/or the user device(s) 160 via anycombination of the network 130 and any other wired or wirelesscommunications means or method (for example, Bluetooth, WiFi, infrared,cellular, etc.).

Further details and examples regarding the implementations, operation,and functionality, including various interactive graphical userinterfaces, of the various components of the example operatingenvironment 100 are described herein in reference to various figures.

Example Management Device/Server

FIG. 2 illustrates a block diagram including an example implementationof a management server 150, according to various embodiments of thepresent disclosure. The management server 150 may be a Web or cloudserver, or a cluster of servers, running on one or more sets of serverhardware. In an embodiment, the management server 150 may work formultiple organizations with different administrators that may have, forexample, multiple gateway devices and additional devices.

According to various embodiments, management server 150 may include oneor more communication interfaces 215, one or more processors 210, andone or more computer readable storage mediums 250, each of which may bein communication with one another. The computer readable storage medium250 includes data processing module 252, user interface module 254,network manager module 256, devices database 258, location database 260,organizations database 262, network database 264, configuration database266, and a network provider database 268. In various implementations,the various databases of the management server 150 may be combined orseparated/partitioned as appropriate to implement the functionalitydescribed herein, and to maintain security and separation of data, forexample, for different organizations. In various implementations, thevarious databases may or may not be stored separately from themanagement server 150.

In various implementations one or more interfaces, APIs, communicationlayers, buses, interconnects, wires/cables, etc. may be used tointerconnect the various components of the management server 150.

In operation, the one or more communication interfaces 215, one or moreprocessors 210, and one or more computer readable storage mediums 250communicate with one another to, for example, execute by theprocessor(s) 210 computer program instructions (for example, as providedby the user interface module 254); receive, access, and transmit data(for example, to/from the databases and via the communicationinterface(s) 215); and/or the like. In general, the processor 210, thecommunication interface 215, and the computer readable storage medium250 enable the functionality of the management server 150 as describedherein. Further implementation details are described below.

In operation, the communication interface(s) 215 may provide wiredand/or wireless communications with other devices and networks, asdescribed herein. In various embodiments, communications among thevarious components of the example operating environment 100 may beaccomplished via any suitable means. For example, the management server150 may communicate with the gateway device 110, the data source(s) 140,the additional device(s) 120, and/or the user device(s) 160 via anycombination of the network 130 or any other communications means ormethod (for example, Bluetooth, WiFi, infrared, cellular, etc.).Accordingly, the communications interface(s) 215 may include one or moreof wired and wireless transceivers, such as a Joint Test Action Group(JTAG) transceiver, a Bluetooth or Bluetooth Low Energy (LE)transceiver, an IEEE 802.11 transceiver, an Ethernet transceiver, a USBtransceiver, a Thunderbolt transceiver, an infrared transceiver, awireless cellular telephony transceiver (for example, 2G, 3G, 4G, 5G),or the like.

In operation, data processing module 252 may provide processing andanalysis of data (for example, data received from the various devices,including the gateway devices) as described herein. The dataprocessing/analysis may usefully provide insights and information thatmay be provided via various interactive graphical user interfaces, asdescribed herein.

In operation, the user interface module 254 may provide the variousinteractive graphical user interface functionality described herein.This may include, for example, generating user interface data useablefor rendering the various interactive user interfaces described. Theuser interface data may be used by various computer systems, devices,and/or software programs (for example, a browser program of a userdevice 160), to render the interactive user interfaces. The interactiveuser interfaces may be displayed on, for example, electronic displays(including, for example, touch-enabled displays). For example, the userinterface module 254 may provide various network accessible interactivegraphical user interfaces, for example, to allow the administrators ofthe various organizations and devices to create and log into an accountassociated with an organization to which a set of devices belong (forexample, gateway devices and additional devices), and manage, and accessdata associated with, those devices as described herein.

In operation, the network manager module 256 may provide communicationwith and configuration and management of the various devices associatedwith each organization. This may include, for example, receiving andmanaging information related to the various devices (for example,gateway devices and additional devices) at the time of manufacture,associating devices with particular organizations when they arepurchased/claimed and implemented by the organizations (for example, theclaiming may be performed at least in part by populating the devicesdatabase 258 and the organizations database 262 with appropriateinformation when the devices are associated with an organization),receiving data from the various devices (for example, and storing thedata in the devices database 260 or other appropriate database), sendingdata to various devices (for example, sending and/or syncingconfigurations stored in the configurations database 266 to/with variousdevices), and/or the like.

In operation, the devices database 258 may store information regardingthe gateway devices 110 and/or additional devices 120, and variousrelationships and associations among these devices. This information mayinclude identifiers associated with these devices, location datareceived from these devices, network preference data from these devices,and etc.

In operation, the locations database 260 can include map information andlocation information. The map information can be associated withdifferent geographical area and may further be linked with networkinformation stored within the network database 264. The locationinformation may be associated with various locations associated with thegateway devices 110. For example, the location information can includelongitudinal and latitudinal information associated with the gatewaydevices 110. In some embodiments, the location information can beassociated the location of the gateway devices 110 within a map tile ofa grid.

In operation, the organizations database 262 may store informationregarding the organizations to which the gateway devices 110 oradditional devices 120 belong. In various embodiments, differentconfigurations from the configurations database 266 may be applied forthe gateway devices 110 or the additional devices 120 based at least inpart on the organization the gateway devices 110 or additional devices120 belong.

In operation, the network database 264 may store network informationrelated to one or more network service providers and the networkprovided by those network service providers. The network information mayinclude, but not limited to, data transmissibility, data transmissionspeed, signal strength, signal availability, signal to noise ratio, ornumber of dropped calls or disconnected wireless communicationsassociated with each of the network service providers associated withthe gateway device 110. The management server 150 may receive thenetwork information stored in the network database 264 from the datasources 140, the gateway devices 110, the user devices 160, or any otherremote data servers that may collect, store, or process network providerrelated information.

In various embodiments, the network information stored in the networkdatabase 264 may include network desirability information. The networkdesirability information may include at least one of, or any combinationof the network information as described herein. As described herein, thegateway device 110 can be associated with one or more network serviceproviders, wherein each of the one or more network service providers hascorresponding network desirability information. In some embodiments, thenetwork desirability information for a given network service providermay vary based at least in part on the location of the gateway device110. In some embodiments, the network desirability information may beinclude a network desirability index. The network desirability index mayrepresent the overall desirability of a network provider. The networkdesirability index may be a number that vary between 0 and 1.Alternatively, the network desirability index may vary between 0 and100.

In operation, the network information stored in the network database 264may be linked with the location information stored in the locationsdatabase 260, as described herein. The network information and thelocation information may be combined to create a network provider map.The network provider map may indicate which areas of the map may beassociated with which network provider associated with the gatewaydevice 110. Based on the information provided by the network providermap, the gateway device 110 may perform dynamic network handovers asdescribed herein. In some embodiments, the network provider maps may bestored within the network database 264, or in any other modules ordatabases of the management server 150.

In operation, the configurations database 266 may store informationregarding configurations of the gateway devices 110 or the additionaldevices 120. The information stored in the configuration database 266may be configuration information specific to certain gateway devices 110or certain organizations associated with the gateway devices 110.

In operation, the network provider database 268 may store informationregarding a list of networks associated with one or more networkproviders. For example, the network provider database 268 may storeinformation regarding networks supported by or preferred by one or morenetwork providers. In some embodiments, the management server 150 maynot store the network provider database 268. For example, the networkprovider database 268 may be stored locally at a gateway device as anetwork cache. Further, the information stored in the network providerdatabase 268 may be a list of networks specific to a particular gatewaydevice, a particular type of network provider, a particular location,etc.

In various embodiments, the management server 150 may include variousother modules, components, engines, etc. to provide the functionality asdescribed herein. It will be appreciated that additional components, notshown, may also be part of the management server 150 and, in certainembodiments, fewer components than that shown in FIG. 2 may also be usedin the management server 150. For example, the management server 150 mayinclude a security module used to manage cryptographic keys,certificates, and/or other data associated with establishing securecommunication with various other devices. For example, the devicesdatabase 260 may include an identifier of each device (for example, aserial number), a secret to be used to establish a secure communicationwith the devices of the same organization, and/or a mechanism toauthenticate the devices' identity (for example, the public key of aprivate public key pair, the private key of which was embedded or storedin the device during the manufacturing, etc.).

Example Gateway device

FIG. 3 illustrates a block diagram of an example gateway device 110,according to various embodiments of the present disclosure. A gatewaydevice 110 may comprise one or more location determination modules 310,one or more user interface modules 320, and one or more controllermodules 330. In various implementations, the location determinationmodules 310, the user interface module 320, and the controller module330 may be housed in different housings, and/or may be housed in a samehousing. In various implementations, the various components andfunctionality of the gateway device 110 (including the components andfunctionality of the location determination modules 310, the underinterface module 320, and the controller module 330) described hereinmay be combined, separated, and/or re-organized.

The location determination module 310 may include one or more locationdetermination devices 312 (e.g., global positioning system (GPS)devices, GLONASS devices, and/or the like). In some embodiments, thelocation determination devices 312 may determine location of the gatewaydevice 110 using various methods including, but not limited to, Wi-Fi,Bluetooth, Internet Protocol (IP) look up, and proximity to beacons (forexample, other location determination devices 312). The locationdetermination device(s) 312 may determine location of the gateway device110 and generate location information associated with the location ofthe gateway device 110. The location information may includegeographical positioning information (e.g., GPS coordinates, latitudinalor longitudinal data, and/or the like) that may represent the locationof the gateway device 110. Additionally or alternatively, the locationinformation may identify a map tile within a grid for identifying orestimating the location of the gateway device 110.

The user interface module 320 may generate various graphical userinterfaces that can be displayed on other devices, for example, the userdevices 160. The graphical interfaces may be transmitted, for example,to the user devices 160 via the network 130. The graphical userinterfaces may be interactive. The graphical user interfaces may be ableto detect user inputs and such user inputs may be transmitted to thegateway device 110 via the network 130 and the user interface module320. The user interface module 320 may furthermore, for example,generate user interface data useable for rendering the variousinteractive user interfaces.

The controller module 330 may include one or more processors 332, one ormore communication modules 340, and one or more computer readablestorage mediums 350, each of which may be in communication with oneanother. The computer readable storage medium(s) 350 may include networkdata 354, configurations data 356, web server module 358, and networkcache 360. The configurations data 356, the web server module(s) 358,and/or the network cache 360 may be stored in one or more databases ofthe controller module 330, or may be stored on virtualization mediums inthe cloud. The communication module 340 may include one or moretransceivers and one or more network subscription identifiers (e.g.,subscriber identification modules (SIMs)), wherein each of the one ormore network subscription identifiers is associated with a networkprovider. In various implementations one or more buses, interconnects,wires/cables, etc. may be used to interconnect the various components ofthe controller module 330, and of the gateway device 110 more generally.

In operation, the one or more of the communication modules 340, one ormore processors 332, and one or more computer readable storage mediums350 communicate with one another to, for example, execute by theprocessor(s) 332 computer program instructions (for example, as providedby the configurations data 356); receive, access, and transmit data (forexample, to/from the configurations data 356 or network data 354, viathe communication module(s) 340); and/or the like. In general, thecontroller module 330, in connection with the location determinationmodule 310 and the user interface module 320, enables the functionalityof the gateway device 110 as described herein. Further implementationdetails are described below.

In operation, the communication module(s) 340 may provide wired and/orwireless communications with other devices and networks, as describedherein. In various embodiments, communications among the variouscomponents of the example operating environment 100 may be accomplishedvia any suitable means. For example, the gateway device(s) 110 maycommunicate with one another, the additional device(s) 120, themanagement server 150, and/or the user device(s) 160 via the network 130or any other communications means or method (for example, Bluetooth,WiFi, infrared, cellular, etc.). Accordingly, the communicationmodule(s) 340 may include one or more of wired and wirelesstransceivers, such as a Joint Test Action Group (JTAG) transceiver, aBluetooth or Bluetooth Low Energy (LE) transceiver, an IEEE 802.11transceiver, an Ethernet transceiver, a USB transceiver, a Thunderbolttransceiver, an infrared transceiver, a wireless cellular telephonytransceiver (for example, 2G, 3G, 4G, 5G) configured with one or moreradios for communicating on various cellular networks (e.g., GSM, CDMA,LTE, EDGE, and/or the like), or the like. As noted herein, thecommunications module(s) 340 may further include one or more applicationprogramming interfaces (“APIs”).

In operation, the network data 354 may include, for example, associationbetween the network subscription identifiers 342 to the networkproviders, network communication settings, router configurations,firewall settings, network sharing settings, IP address settings, userauthentication settings, network traffic settings, and the like. Thenetwork data 354, together with the configuration data 356, may controland facilitate network connectivity of the gateway device 110 with thenetwork 130, the management server 150, the user device(s) 160, and theadditional device(s) 120.

In operation, the configuration data 356 includes one or moreconfigurations that configure operation of the gateway device 110, asdescribed herein. For example, such configurations may be received froma user via the user device(s) 160 or the management server 150 (otherdevices in communication with the gateway device 110). Each of theconfigurations stored in the configuration data 356 may include networkpreference information, location determination frequency, networkconnectivity information, and the like. The gateway device 110 may storemultiple configurations in the configuration data 356, which may beselectively run or implemented, for example, via user selection via themanagement server 150 or the user device(s) 160.

In various embodiments, the configurations of the gateway device 110 mayinclude default network settings. For example, the default networksettings may indicate which network provider is to be used for thegateway device 110 to establish network communications. The defaultnetwork settings may be based at least in part on network preferenceassociated with an organization associated with the gateway device 110,cost information associated with network providers associated with thegateway device 110, or any other information associated with the networkproviders and the organization associated with the gateway device 110.

In operation, the web server module(s) 358 may include program codeexecutable, for example, by the processor(s) 332 to provide a web-basedaccess (for example, interactive graphical user interfaces accessiblevia web-based communications protocols, rendering of interactivegraphical user interfaces written in web-based languages by web-basedbrowsers, etc.) to the gateway device 110, for example, to configure thegateway device 110 and/or access data of the gateway device 110. Suchweb-based access may be via one or more communications protocols, forexample, TCP/IP, UDP, WebRTC, etc., and may include one or more securecommunications/cryptographic protocols, for example, TLS, SSL, etc., andmay further be provided via communications module(s) 340. This mayinclude, for example, generating user interface data useable forrendering the various interactive user interfaces described. The userinterface data may be used by various computer systems, devices, and/orsoftware programs (for example, a browser program of a user device 160),to render the interactive user interfaces. The interactive userinterfaces may be displayed on, for example, electronic displays(including, for example, touch-enabled displays). In variousimplementations one or more of the management server 150 and the userdevice(s) 160 may communicate with the gateway device 110 via one ormore of the web server module(s) 358.

In operation, the network cache 360 may store information regarding alist of networks associated with one or more network providers. The oneor more network providers may be network providers associated with orlinked to the network subscription identifiers 342. In some embodiments,the gateway device 110 may not store the network cache 360. In otherembodiments, multiple devices and/or systems may store the network cache360. Further, the information stored in the network cache 360 may be alist of networks specific to a particular gateway device, a particulartype of network provider, a particular location, etc.

The location information, the network data, or the configuration datamay be communicated, for example, via the communications module(s) 340,to other devices, such as the management server 150 or user device(s)160. For example, the gateway device 110 may be configured to reliablyand securely transmit data to the management server 150 regardless ofwhether the connectivity of the gateway device 110 (for example, to themanagement server 150) is intermittent. For example, data may be storedby the gateway device 110 until connectivity is available, and may thenby transmitted to the management server 150. In another example, datamay be stored by the gateway device 110 for a predetermined duration,and may then be transmitted to the management server 150.

In various implementations, as described above, the gateway device(s)110 may communicate with one or more additional devices 120, which mayinclude, for example, sensors or programmable logic controller (PLC)capable of generating and providing real-time or delayed alerts,notifications, data, for example, related to assets associated with thegateway device(s) 110. Communications with additional device(s) 120 maybe via direct (for example, not via a network) wired and/or wirelesscommunications, and/or may be via a network (for example, a localnetwork) wired and/or wireless communications.

In various embodiments, the gateway device 110, may include variousother modules, components, engines, etc. to provide the functionality asdescribed herein. It will be appreciated that additional components, notshown, may also be part of the gateway device 110, and, in certainembodiments, fewer components than that shown in FIG. 3 may also be usedin the gateway device 110.

In various embodiments, firmware of the gateway device 110 may beupdated such that the gateway device 110 may provide additionalfunctionality. Such firmware updating may be accomplished, for example,via communications with the management server 150, thereby enablingupdating of multiple gateway device 110 remotely and centrally.Additional functionality may include additional ways of communicatingwith additional devices 120, additional configurations or options forconfigurations, and/or the like.

Example Embodiments of Network Provider Map

FIGS. 4A-4D illustrate various examples of a network provider map. Theexamples of a network provider map illustrated in FIGS. 4A-4D are forpurposes of describing the processes of dynamic network handovers onlyand by no way limit the illustration of network provider maps.

An example network provider map is shown in FIGS. 4A-4D, which mayinclude a first map tile 402, a second map tile 404, and a third maptile 406. The network provider map can further include locationindicators 408, 418, and 428. The location indicators 408, 418, and 428may represent different locations of the gateway device 110 within thenetwork provider map. The map tiles may represent geographical areas orgeographical regions of a geographical map. The network provider map andthe map tiles described herein may be overlaid over, or comprise a partof, a geographical map.

Each of the first map tile 402, the second map tile 404, and the thirdmap tile 406 may include information associated with network providersassociated with the gateway device 110 and/or organization(s) associatedwith the gateway device 110. For example, each of the first map tile402, the second map tile 404, and the third map tile 406 may includeinformation associated with two network providers, three networkproviders, five network providers, ten network providers, and the like.The network providers associated with the first map tile 402, the secondmap tile 404, the third map tile 406 may be different or the same. Insome embodiments, each of the map tiles may be associated with a networkprovider that has the best/better network desirability in respective,corresponding map tile.

In various embodiments, each of the first map tile 402, the second maptile 404, and the third map tile 406 may be associated with networkdesirability information of network providers associated with thegateway device 110 and/or organization(s) associated with the gatewaydevice 110. For example, the first map tile 402 may be associated withNetwork Provider A and Network Provider B that may be associated withthe gateway device 110. Moreover, as described herein, the first maptile 402 may be associated with a network desirability informationassociated with the Network Provider A and Network Provider B.

In the examples illustrated by FIGS. 4A-4D, the first map tile 402 mayrepresent a geographical area in which Network Provider A has highnetwork desirability. The third map tile 406 may represent ageographical area in which Network Provider B has high networkdesirability. The second map tile 404, which may be an overlap betweenthe first map tile 402 and the third map tile 406, may represent ageographical area in which both Network Provider A and Network ProviderB have high network desirability.

In some embodiments, for example, the network desirability informationmay include a network desirability index. The network desirability indexmay be a number ranging between 0 and 1, between 0 and 10, between 0 and100, or the like. The network desirability index may represent a degreeof network desirability. For example, a network desirability indexhaving a small value may represent poor, inadequate, or low networkdesirability, a network desirability index having a large value mayrepresent good, adequate, or high network desirability. By comparingnetwork desirability index of different network providers, the gatewaydevice 110 may determine which network provider has the better/poorernetwork desirability.

FIG. 5 illustrates another example network provider map 500 according tovarious embodiments described herein. The network provider map 500 mayinclude map tiles 502, grid lines 504, map tile identifiers 506, and alocation indicator 510. As described herein, one or more networkprovider maps may be stored in the gateway device, and may be used bythe gateway device to implement the various functionality describedherein. The stored network provider maps may be stored on the gatewaydevice during manufacture of the gateway device, and may be updatedthereafter periodically or on demand, via communication with themanagement server. FIGS. 4A-4D and 5 provide visual representations ofexample network provider maps for illustrative and explanatory purposes,however it is to be understood that the network providers maps may ormay or may not be displayed by the gateway device visually, and maycover a much larger geographical area (e.g., a city, country, multiplecountries, a continent, etc.) that are represented in the examples ofFIGS. 4A-4D and 5.

The grid lines 504 may define boundaries of each of the map tiles 502.In various embodiments, the grid lines 504 may extend vertically andhorizontally to define a rectangular grid on the network provider map500. The grid on the network provider map 500 may be regular orirregular. The sizes or shapes of the map tiles 502 may or may not bethe same. The shape of the map tiles 502 may be rectangular, square,quadrilateral, triangular, hexagonal, circular, another shape, and thelike. The boundaries of the map tiles 502 may not be straight. Invarious implementations, the map tiles may or may not overlap with oneanother. In various implementations, the map tiles may each correspondto a same size geographical area, or varying sizes of geographicalareas. For example, the map tiles may correspond to geographical areasof approximately 1 block, 1 square mile, 5 square miles, 10 squaremiles, and/or any other size of geographical area.

Each map tile 502 may be associated with a network provider that has thebest/better network desirability for the corresponding map tile 502. Forexample, map tile “7” of the network provider map 500 may be associatedwith Network Provider A since Network Provider A's network desirabilityindex (that is, 0.9) is greater than that of Network Provider B (thatis, 0.2). Likewise, map tile “14” of the network provider map 500 may beassociated with Network Provider B since Network Provider B's networkdesirability index (that is, 0.9) is greater than that of NetworkProvider A (that is, 0.1). Additionally, some of the map tiles 502 ofthe network provider map 500 may not be associated with any of thenetwork providers associated with the gateway device 110 for variousreasons. For example, map tile “12” of the network provider map 500 maynot be associated with either Network Provider A or Network Provider Bbecause network desirability indexes for both networks are bad.Likewise, map tile “13” of the network provider map 500 may not beassociated with either Network Provider A or Network Provider B becausenetwork desirability indexes for both networks are good. In someembodiments, the map tiles are not “associated” with any particularnetwork provider, but rather each of the map tiles is associated withnetwork provider desirability information as described herein.

In some embodiments, the map tiles 502 may be given a respectivecorresponding map tile identifier 506 that can uniquely identify each ofthe map tiles 502. The map tile identifiers 506 may include alphabets,numbers, or both. The map tile identifiers 506 may be assigned in aspecific order. For example, as shown in FIG. 5, the first map tile 502located at the top left corner may be given “1” as its map tileidentifier 506, while the last map tile 502 located at the bottom rightcorner may be given “25” as its map tile identifier 506. In someembodiments, the map tile identifier 506 may be generated at random.

In operation, each of the map tiles 502 may include network informationof network providers associated with the gateway device 110. In theexample illustrated in FIG. 5, the gateway device 110 is associated withnetwork providers A and B and each of the map tiles 502 may beassociated with network desirability information of network providers Aand B. In some embodiments, each of the map tiles 502 may be associatedwith network desirability indexes described herein. For example, maptile “13” may include network desirability indexes of 0.8 and 0.9 forNetwork Provider A and Network Provider B, respectively.

As described herein, a network provider map 500 may be associated withone or more network providers such that it contains network desirabilityinformation associated with the one or more network providers.Alternatively, in some embodiments, each network provider map 500 may beassociated with a single network provider. For example, when the gatewaydevice 110 is activated on an initial network provider (for example,Network Provider A), it may have access to a network provider mapassociated with the initial network provider. When the gateway device110 is simultaneously activated on the initial network provider and asecond network provider, it may have access to a network provider mapassociated with the initial network provider and another networkprovider map associated with the second network provider. Alternatively,a gateway device 110 may have access to network provider maps associatedwith each of network providers that it is associated with, regardless ofwhich network provider it is activated on.

Example Embodiments of Network Handovers

In operation, as discussed herein, the gateway device 110 may activateon an initial network provider based at least in part on networkdesirability information and/or preference information associated withnetwork providers associated with the gateway device 110. For example,the preference information may be provided by users or organizationsassociated with the gateway device 110. The preference information maybe based at least in part on cost, network desirability, networkreliability, network connectivity, network data transmissibility, andthe like associated with each of available network providers associatedwith the gateway device 110. The preference information may or may notdepend on the location of the gateway device 110. For example, thepreference information may indicate that Network Provider A is apreferred network provider when the gateway device 110 is located withinurban areas and Network Provider B is a preferred network provider whenthe gateway device 110 is located within suburban areas. In someembodiments, the preference information may indicate which networkprovider is prioritized in different situations/circumstances.

Referring to FIG. 4A, the location of the gateway device 110 isrepresented by the location indicator 408, which is positioned withinthe first map tile 402. As such, the location of the gateway device 110may be associated with the first map tile 402 of the network providermap. The location of the gateway device 110 represented by the locationindicator 408 may be determined by the location determination module 310of the gateway device 110.

In operation, the gateway device 110 may choose an initial networkprovider for activation, for example, network provider A, based at leastin part on the network desirability information as described herein. Insome embodiments, the gateway device 110 may determine the initialnetwork provider based at least in part on its location. In the exampleillustrated in FIG. 4A, the gateway device 110 may determine its initialnetwork provider based at least in part on comparison or analysis ofnetwork desirability information associated with the first map tile 402.An example method of determining an initial network provider will befurther described herein.

In operation, the gateway device 110 may move from one locationassociated with one map tile to another location associated with adifferent map tile. When the gateway device 110 moves to a subsequent,different map tile, it may receive/retrieve/access network desirabilityinformation associated with the subsequent map tile. Based at least inpart on the network desirability information of network providersassociated with the subsequent map tile, the gateway device 110 maydetermine whether to perform an additional network activation and/orhandover (that is, switch from one network provider to another).

In some embodiments, the gateway device 110 may prefer to stay activatedon its initial network provider, and not activate on a second networkprovider. As such, the gateway device 110 may consider preferenceinformation in addition to network desirability information to determinewhether to switch from its initial network provider to a differentnetwork provider, and to activate on that different network provider.The preference information may provide different standard/condition forperforming network activations and/or handovers in following examplesituations: (1) when the gateway device 110 is activated only on itsinitial network provider; and (2) when the gateway device 110 isactivated on more than one network providers. As described herein, whenthe gateway device 110 is activated only on its initial networkprovider, it may prefer to remain on the initial network provider. Onthe other hand, when the gateway device 110 is activated on more thanone network providers, it may prefer to switch to a network providerthat provides the best (or the better) network desirability.

For example, the gateway device 110 may move from the first map tile 402to the second map tile 404 as illustrated by the position indicators 408and 418 in FIGS. 4A and 4B. The gateway device 110 may be activated onlyon, for example, Network Provider A. When the gateway device 110determines that it has moved to the second map tile 404, it mayreceive/retrieve/access network desirability information associated withthe second map tile 404. The gateway device 110 may analyze the networkdesirability information associated with the second map tile 404 todetermine whether to perform a network activation and/or handover (thatis, switch from Network Provider A to a different network provider (forexample, Network Provider B).

In some embodiments, when the gateway device 110 is activated on morethan one network provider (for example, Network Provider A and NetworkProvider B), the management server 150 may generate updated map tilesthat identify network providers that have the best/better networkdesirability. For example, the gateway device 110 initially activated ona first network may later be activated on a second network after movingto a new, different location. Upon the gateway device 110 beingactivated on the second network, the management server 150 may update atleast one or all of map tiles of a network provider map. For example,each of updated map tiles may be associated with a network providerhaving a network desirability (for example, network desirability index)greater than network desirability of other network providers. In someembodiments, as shown in FIG. 4D, at least a portion of a map tile (forexample, the second map tile 404) may be associated with a networkprovider as described herein. The association between a map tile or aportion of a map tile may be represented using different colors,shadings, or patterns. In some examples, network provider identifies,names, abbreviations, and the like may be used to indicate associationbetween a map tile or a portion of a map tile and a network provider.

A map tile or at least a portion of a map tile may be identified withdifferent colors (or a network provider identifier) to identify anetwork provider, as illustrated in FIG. 4D.

As discussed herein, the gateway device 110 may apply differentconditions/thresholds/standards when determining whether to perform anetwork activation and/or handover upon moving from the first map tile402 to the second map tile 404. Since the gateway device 110 isactivated Network Provider A, it may prefer to stay on Network ProviderA unless, for example, Network Provider A has poor network desirabilityin the second map tile 404 and/or Network Provider B has much betternetwork desirability than Network Provider A in the second map tile 404.

For example, the gateway device 110 may perform a network handover insecond map tile 404 (that is, activate on and switch to Network ProviderB) and subsequently move from the second map tile 404 to the third maptile 406, as illustrated by the location indicators 418 and 428 in FIGS.4B and 4C. When the gateway device 110 determines that it is located inthe third map tile 406, it can receive/retrieve/access networkdesirability information associated with the third map tile 406. Thegateway device 110 may analyze the network desirability informationassociated with the third map tile 406 to determine whether to performanother network handover upon moving to the third map tile 406.

In various embodiments, when the gateway device 110 switches to adifferent network provider, the gateway device 110 may be activated onboth the initial network provider and the new, different networkprovider. In some embodiments, the gateway device 110 may only beactivated on the new, different network provider (for example,deactivated on the previous network provider).

Accordingly, in an embodiment, the gateway device 110 may prefer toremain activated on only an initial network provider if the networkdesirability of that initial network provider remains sufficiently good(e.g., satisfying a threshold or condition) as the gateway device 110moves from one map tile to another. This is because, although othernetwork providers may be available, there may be a cost to activating ona second network provider. However, if the network desirability of thatinitial network provider does not remain sufficiently good, the gatewaydevice 110 may then, in certain circumstances, activate on the secondnetwork provider. Those circumstances may include, for example, that thenetwork desirability of the second network provider is sufficiently good(e.g., satisfying a threshold or condition).

In some embodiments, a predetermined temporal condition may be satisfiedbefore the gateway device 110 activates on the second network provider.The gateway device 110 may activate on the second network provider ifthe network desirability of the initial network, for example, fails tosatisfy a predetermined threshold or condition, for a predeterminelength of time. For example, the predetermined length of time may be tenminutes. As such, if the network desirability of the initial networkfails to satisfy a predetermined threshold or condition for more thanten minutes, the gateway device 110 may activate on the second networkprovider.

Once activated on both the first and second network providers, thegateway device 110 may thereafter handoff between the first and secondnetwork providers, as the gateway device 110 moves from one map tile toanother, based on relative or absolute network desirabilities of the twonetworks. Alternatively, once activated on both the first and secondnetwork providers, the gateway device 110 may thereafter handoff betweenthe first and second network providers, as the gateway device 110 movesfrom one map tile to another, based on various conditions or othercriteria associated with the two networks, optionally including therelative or absolute network desirabilities of the two networks. Suchconditions or other criteria may include, for example, costs of datatransfer on the two networks, among other conditions or criteria.

Referring to FIG. 5, the location of the gateway device 110 may changefrom one location to another such that the location indicator 510 movesfrom one map tile 502 to another map tile 502. When the gateway device110 moves to a different map tile 502, it may use information including,but not limited to, network desirability information, preferenceinformation, and the like, to determine whether to perform a networkhandover (for example, switch from one activated network provider toanother activated network provider or activate on another networkprovider). Various examples of network activations and handovers aredescribed herein as non-limiting examples.

In some embodiments, the gateway device 110 may compare networkdesirability information (for example, network desirability index) ofits current (or present) network provider to that of another, differentnetwork provider to determine whether to perform a network activationand/or handover. For example, the gateway device 110 may determine tonot to perform a new network activation or a network handover if thenetwork desirability index of the current network provider is greaterthan that of the other network provider. In contrast, the gateway device110 may decide to perform a network activation and/or handover, forexample, activate on the other network provider (if the other networkprovider has not yet been activated) or switch from the current networkprovider to the other network provider (if the other network providerhas already been activated), if the network desirability index of theother network provider is greater than that of the current networkprovider.

In some embodiments, the gateway device 110 may analyze the networkdesirability information, for example, of its current network provider(for example, Network Provider A) and the other network provider (forexample, Network Provider B), with predetermined conditions to determinewhether to perform network activations and/or handovers. Thepredetermined conditions may include a first desirability condition anda second desirability condition. The first desirability condition may beassociated with the network desirability information of a first networkprovider (for example, Network Provider A). The second desirabilitycondition may be associated with the network desirability information ofa second network provider (for example, Network Provider B). In someembodiments, the first network provider may be a network provider thegateway device 110 is currently activated on. Additionally oroptionally, the second network provider may be another network providerthe gateway device 110 may or may not be activated on. In someembodiments, the second desirability condition may be associated withnetwork desirability information of more than one other networkproviders different from the first network provider. While the examplesdescribed below are based on two network providers, in variousimplementations, similar functionality may be applied to three or morenetwork providers.

In operation, the gateway device 110 may use the predeterminedconditions in conjunction with each other to determine whether toperform network activations and/or handovers. An example method ofdetermining whether to perform network activation and/or handover withpredetermine conditions is illustrated in FIG. 7. For example, thegateway device 110 may remain activated on its current network provider(for example, Network Provider A) and not perform network activation orhandover so long as the network desirability index of the currentnetwork provider satisfies the first desirability condition. In anotherexample, if the network desirability index of the current networkprovider (for example, Network Provider A) fails to satisfy the firstdesirability condition, the gateway device 110 may not perform a networkactivation or handover (for example, remain activated on the currentnetwork provider) so long as the network desirability index of the othernetwork provider (for example, Network Provider B) also does not satisfythe second desirability condition. If the network desirability index ofthe other network provider (for example, Network Provider B) doessatisfy the second condition, the gateway device 110 may perform anetwork activation and/or handover (for example, activate the othernetwork provider (if the other network provider has not yet beenactivated) or switch from the current network provider to the othernetwork provider (if the other network provider has already beenactivated)).

In various embodiments, the predetermined conditions may be associatedwith respective, corresponding threshold network desirability values.The predetermined conditions may include a first desirability conditionassociated with a first threshold value. Additionally, the predeterminedcondition may include a second desirability condition associated with asecond threshold value. For example, the gateway device 110 may notperform a network activation and/or handover (for example, remainactivated on its current network provider) so long as the networkdesirability index of the current network provider satisfies the firstdesirability condition, for example, greater than 0.75. In anotherexample, if the network desirability index of the current networkprovider (for example, Network Provider A) fails to satisfy the firstdesirability condition, the gateway device 110 may still not perform anetwork activation and/or handover (for example, remain activated on thecurrent network provider) so long as the network desirability index ofthe other network provider does not satisfy the second desirabilitycondition, for example, greater than 0.6. On the other hand, if thenetwork desirability index of the current network provider (for example,Network Provider A) fails to satisfy the first desirability condition,the gateway device 110 may perform a network activation and/or handover(for example, activate on and/or handover to an other network provider)when the network desirability index of the other network provider doessatisfy the second desirability condition, for example, greater than0.6.

In some embodiments, the predetermined conditions, for example, thefirst desirability condition and the second desirability condition, mayor may not be the same or similar to one another. Additionally, thedesirability conditions associated with network activations (e.g., whendeciding whether to activate on a second network) may differ from thoseassociated with network handovers (e.g., handing off to a second networkon which the gateway device is already activated). For example, in someimplementations in which the desirability conditions are the same orsimilar to one another (e.g., equalized or equal to one another), thepredetermined conditions may be associated with the same thresholddesirability values. Additionally or alternatively, equalized conditionsmay be associated with the same desirability conditions.

When the predetermined conditions are not the same or similar to oneanother (e.g., not equalized or equal to one another), the predeterminedconditions may be associated with different desirability values ordesirability conditions. For example, the first desirability conditionand the second desirability condition may be equalized when the gatewaydevice 110 is activated on both a first network provider associated withthe first desirability condition and a second network providerassociated with the second desirability condition (for example, in casesin which the gateway device is determining whether to handoff from amongmultiple activated network providers). In some examples, the firstdesirability condition and the second desirability condition may not beequalized when the gateway device 110 is activated on only one of thefirst network provider and the second network provider (e.g., in casesin which the gateway device is determining whether to activate on asecond network provider).

In some embodiments, the conditions described herein may reflectdifferent network activation and/or handover situations for the gatewaydevice 110. For example, in some situations, the gateway device 110 maycompare network desirability information of more than one networkproviders and activate on a network provider that has the best/betternetwork desirability. In some examples, the gateway device 110 mayprefer to stay activated on its current network provider.

In some embodiments, the conditions may reflect preference information,for example, provided by the management server 150, the user device(s)160, or users or organizations associated with the gateway device 110.The preference information may be based at least in part on costsassociated with remaining on the initial network provider, costsassociated with activating on another network provider, costs associatedwith maintaining just the initial network provider, costs associatedwith maintaining the initial and the other network provider, and thelike.

Example 1A: Only One Network Provider is Activated—Current NetworkProvider Satisfies Condition & Other Network Provider does not SatisfyCondition)

For example, the gateway device 110 may have Network Provider A as itscurrent (or present) network provider and may move from map tile “1” tomap tile “7” of the network provider map 500. Map tile “7,” asillustrated in FIG. 5, may be associated with network desirabilityinformation for the Network Provider A and Network Provider B. Thenetwork desirability information associated with map tile “7”, forexample, may include network desirability index of 0.9 for NetworkProvider A and network desirability index of 0.2 for Network Provider B.

In some embodiments, the gateway device 110 may use predeterminedconditions to determine whether to perform network handovers. Forexample, the gateway device 110 may utilize a method illustrated in FIG.7 to determine whether to perform network activations. For example, afirst desirability condition of the predetermined conditions may askwhether the network desirability index of a current network provider(for example, Network Provider A) is greater than 0.6. For example, asecond desirability condition of the predetermined conditions may askwhether the network desirability index of another network provider (forexample, Network Provider B) is greater than 0.75. (for example, in thisexample the two conditions are not equal.)

In map tile “7,” the first desirability condition is satisfied since thenetwork desirability index of Network Provider A (that is, 0.9) isgreater than 0.6. On the other hand, the second desirability conditionis not satisfied since the network desirability index of NetworkProvider B (that is, 0.1) is not greater than 0.8. Accordingly, thegateway device 110 may decide to not perform network activation orhandover (for example, remain activated on Network Provider A instead ofactivating on and switching to Network Provider B).

Example 1B: Only One Network Provider is Activated—Current NetworkProvider does not Satisfy Condition & Other Network Provider SatisfiesCondition)

In another example, the gateway device 110 may have Network Provider Aas its current (or present) network provider and may move from map tile“1” of the network provider map 500 to map tile “14” of the networkprovider map 500. Map tile “14,” as illustrated in FIG. 5, may beassociated with network desirability information for the NetworkProvider A and Network Provider B. The network desirability informationassociated with map tile “14”, for example, may include networkdesirability index of 0.1 for Network Provider A and networkdesirability index of 0.9 for Network Provider B.

In some embodiments, the gateway device 110 may use predeterminedconditions to determine whether to perform network handovers. Forexample, the gateway device 110 may utilize a method illustrated in FIG.7 to determine whether to perform network activations. For example, afirst desirability condition of the predetermined conditions may askwhether the network desirability index of an initial network provider(for example, Network Provider A) is greater than 0.6. For example, asecond desirability condition of the predetermined conditions may askwhether the network desirability index of another network provider (forexample, Network Provider B) is greater than 0.75.

In map tile “14,” the first desirability condition is not satisfiedsince the network desirability index of Network Provider A (that is,0.1) is not greater than 0.6. On the other hand, the second desirabilitycondition is satisfied since the network desirability index of NetworkProvider B (that is, 0.8) is greater than 0.75. Accordingly, the gatewaydevice 110 may perform a network activation and handover (for example,activate on and switch to Network Provider B). Occasionally, the gatewaydevice 110 may not be able to activate on a new network provider (forexample, Network Provider B) for various reasons. In such circumstances,the gateway device 110 may remain activated on its current networkprovider (for example, Network Provider A).

Example 1C: Only One Network Provider is Activated—Current NetworkProvider Satisfies Condition & Other Network Provider SatisfiesCondition

In another example, the gateway device 110 may have Network Provider Aas its current (or present) network provider and may move from map tile“1” of the network provider map 500 to map tile “13” of the networkprovider map 500. Map tile “13,” as illustrated in FIG. 5, may beassociated with network desirability information for the NetworkProvider A and Network Provider B. The network desirability informationassociated with map tile “13”, for example, may include networkdesirability index of 0.8 for Network Provider A and networkdesirability index of 0.9 for Network Provider B.

In some embodiments, the gateway device 110 may use predeterminedconditions to determine whether to perform network handovers. Forexample, the gateway device 110 may utilize a method illustrated in FIG.7 to determine whether to perform network activations. For example, afirst desirability condition of the predetermined conditions may askwhether the network desirability index of an initial network provider(for example, Network Provider A) is greater than 0.6. For example, asecond desirability condition of the predetermined conditions may askwhether the network desirability index of another network provider (forexample, Network Provider B) is greater than 0.75.

In map tile “13,” the second desirability condition is satisfied sincethe network desirability index of Network Provider B (that is, 0.9) isgreater than 0.75. However, the first desirability condition is alsosatisfied since the network desirability index of Network Provider A(that is, 0.8) is greater than 0.6. Accordingly, the gateway device 110may not perform a network activation or handover (for example, notactivate on Network Provider B) and instead remain activated on NetworkProvider A. In the above example, the gateway device 110 may not performnetwork handover for various reasons. For example, as discussed herein,activating on a new, different network provider may be associated withadditional costs that may not be necessary if the gateway device 110remained with its current network provider. Since network providers mayremain activated once they are activated, the benefit of providingmarginally better network desirability may be outweighed by costsassociated with having another network provider activated.

Example 1D: Only One Network Provider is Activated—Current NetworkProvider does not Satisfy Condition & Other Network Provider does notSatisfy Condition

In another example, the gateway device 110 may have Network Provider Aas its current (or present) network provider and may move from map tile“1” of the network provider map 500 to map tile “12” of the networkprovider map 500. Map tile “12,” as illustrated in FIG. 5, may beassociated with network desirability information for the NetworkProvider A and Network Provider B. The network desirability informationassociated with map tile “12”, for example, may include networkdesirability index of 0.1 for Network Provider A and networkdesirability index of 0.2 for Network Provider B.

In some embodiments, the gateway device 110 may use predeterminedconditions to determine whether to perform network handovers. Forexample, the gateway device 110 may utilize a method illustrated in FIG.7 to determine whether to perform network activations. For example, afirst desirability condition of the predetermined conditions may askwhether the network desirability index of an initial network provider(for example, Network Provider A) is greater than 0.6. For example, asecond desirability condition of the predetermined conditions may askwhether the network desirability index of another network provider (forexample, Network Provider B) is greater than 0.75.

In map tile “12,” the first desirability condition is not satisfiedsince the network desirability index of Network Provider A (that is,0.1) is not greater than 0.6. On the other hand, the second desirabilitycondition is also not satisfied since the network desirability index ofNetwork Provider B (that is, 0.2) is not greater than 0.75. Despite thelow network desirability index of Network Provider A, the gateway device110 may not perform a network activation or handover, and instead remainactivated on Network Provider A. This may be because despite NetworkProvider A's low network desirability index, Network Provider B too hasa low network desirability index.

Example 2: Multiple Network Providers are Activated

In operation, the gateway device 110 may be activated on more than onenetwork provider. For example, the gateway device 110 may be activatedon Network Provider A and Network Provider B. When the gateway device110 is activated on more than one network provider, network handover mayinclude switching between the activated network providers (for example,Network Provider A and Network Provider B) to operate on a networkprovider that provides the best (or the better) network desirability orotherwise staying on a current network provider if the networkdesirabilities of the multiple activated networks are similar or thesame.

For example, the gateway device 110 may be activated on Network ProviderA and Network Provider B and move from map tile “1’ to map tile “13.” Asshown in FIG. 5, the map tile “13” is associated with networkdesirability index of 0.8 for Network Provider A and networkdesirability index of 0.9 for Network Provider B. The gateway device110, upon determining that it has moved to map tile “13,” it mayaccess/receive/retrieve network desirability information associated withmap tile “13.” The gateway device 110 may analyze the networkdesirability information (for example, network desirability indexes)associated with the map tile “13” and may determine that NetworkProvider B providers better network desirability than Network ProviderA. Accordingly, the gateway device 110 may perform a network handover byswitching from Network Provider A to Network Provider B.

In some embodiments, regardless of whether network providers all provideadequate or inadequate network desirability, the gateway device 110 maydecide to select a network provider that provides the best (or thebetter) network desirability. For example, the gateway device 110 may beactivated on Network Provider A and Network Provider B and move from maptile “1’ to map tile “12.” As shown in FIG. 5, the map tile “12” isassociated with network desirability index of 0.1 for Network Provider Aand network desirability index of 0.2 for Network Provider B. Thegateway device 110 may analyze the network desirability information (forexample, network desirability indexes) associated with the map tile “12”and may determine that Network Provider B providers better networkdesirability than Network Provider A. Accordingly, the gateway device110 may perform a network handover, for example, by switching fromNetwork Provider A to Network Provider B.

In other embodiments, when the gateway device is activated on multiplenetwork providers, the gateway device 110 may utilize the methodillustrated in FIG. 7 to determine whether to perform network handover,but as mentioned above, may use different desirability conditions thatthose used for determining whether to perform network activation. Inthese embodiments, the first desirability condition may apply to thecurrently in-use network provider, and the second desirability conditionmay apply to a second network provider on which the gateway device isactivated, and to which the gateway device may switch. As noted above,when determining handovers (as opposed to activations, as describedabove), the desirability conditions may be the same or similar (e.g.,both 0.5), resulting in a preference to stay on a current networkprovider, but a lower threshold for switching as compared to theactivation scenarios described above. Alternatively, the desirabilityconditions may be different.

In various implementations, as mentioned above, the network desirabilityinformation may include considerations such as, for example, cost.Accordingly, even when activated on multiple network providers, thegateway device may prefer to use a particular network when it providesadequate performance. In these example implementations, referring againto FIG. 7, the first desirability condition may apply to the preferrednetwork provider, and the second desirability condition may apply to asecond network provider on which the gateway device is activated, and towhich the gateway device may remain or switch. As with the examplesnoted above, when determining handovers (as opposed to activations, asdescribed above), the desirability conditions may be the same orsimilar, or they may be different, depending on the network preferenceof the gateway device.

As noted above, the desirability conditions associated with networkactivations (e.g., when deciding whether to activate on a secondnetwork) may differ from those associated with network handovers (e.g.,handing off to a second network on which the gateway device is alreadyactivated).

In some embodiments, the gateway device 110 may be activated on, forexample, three or more network providers (for example, Network ProviderA, Network Provider B, and Network Provider C). The gateway device 110may be activated on Network Provider A and may, upon moving to a newlocation, look to switch to a new network provider. As described herein,the gateway device 110 may compare network desirability information ofNetwork Provider A, Network Provider B, and Network Provider Cassociated with the new location, and may decide to switch from NetworkProvider A to Network Provider C. However, under certain situations, thegateway device 110 may not be able to switch from Network Provider A toNetwork Provider C for various types of reasons. In such situations,based at least in part on comparison of network desirability informationand desirability conditions associated with Network Provider A andNetwork Provider B, the gateway device 110 may determine whether toremain on Network Provider A or possibly switch to Network Provider B.

Example Method of Determining an Initial/Default Network Provider

In operation, the gateway device 110 may determine its location via themore location determination devices 312 (e.g., global positioning system(GPS) devices, GLONASS devices, and/or the like) of the locationdetermination module 310. Once the gateway device 110 determines itslocation, the gateway device 110 may access a network provider map. Asdescribed herein, the network provider map (for example, the networkprovider map as shown in FIG. 4A), may provide information indicatingassociations between different areas of a map (for example, the maptiles 502 of the network provider map 500 illustrated in FIG. 5) andnetwork providers associated with the gateway device 110. The gatewaydevice 110 may determine its location within the network provider mapusing the location information provided by the location determinationmodule 310. For example, as shown in FIG. 5, the location of the gatewaydevice 110, as illustrated by the location indicator 510, may be in maptile “9.” Based on its location within the network provider map (forexample, the network provider map 500), the gateway device 110 maydetermine which network provider to use for establishing networkcommunication.

In various embodiments, the gateway device 110 may fail to determine itslocation via the location determination module 310 for various reasonssuch as location determination device malfunction, lack of networkconnection for the location determination device 312, and the like. Insuch situations, the gateway device 110 may establish communicationnetwork using a default network provider.

In some embodiments, the management server 150 may provide the defaultnetwork provider for the gateway device 110. The management server 150may determine the default network provider based at least in part on anetwork preference, default setting information, network desirabilityinformation, and the like. In some embodiments, the management server150 may access network subscription information of different networkproviders, where the network subscription information may includepricing information, subscription term information, and the likeassociated with network providers. In some cases, network providers mayupdate the network subscription information from time to time.Accordingly, the management server 150 may periodically access thenetwork subscription information and update the default network providerwhen needed. In some embodiments, users may manually prompt themanagement server 150 to access and assess the network subscriptioninformation, and check whether the default network provider isup-to-date.

FIG. 6 illustrates an example method 600 of determining an initialnetwork provider for the gateway device 110. At block 602, the gatewaydevice 110 determines whether it is able to determine its location. Thelocation of the gateway device 110 may be determined using locationinformation collected by the location determination device 312 of thelocation determination module 310. If the gateway device 110 is unableto determine its location, the gateway device 110 at block 614identifies and activates on a default network provider. On the otherhand, if the gateway device 110 is able to determine its location, thegateway device 110 at block 604 may identify its location. At block 606,the gateway device 110 may access a network provider map. At block 608,the gateway device 110 may determine a first map tile of the networkprovider map. The first map tile may be determined based at least inpart on the first location and the network provider map. The firstlocation of the gateway device 110 may be within the first map file ofthe network provider map. At block 610, the gateway device 110 mayidentify and analyze network desirability information associated withthe first map tile. As described herein, the first network provider maybe associated with the first map tile of the network provider map. Thefirst network provider may be one of many network providers associatedwith the gateway device 110. At block 612, the gateway device 110activates on a first network provider based at least in part on theanalysis of the network desirability information associated with thefirst map tile. As described herein, the gateway device 110 may activateon the first network provider because the first network provider mayhave network desirability higher than that of other network providers.

In some embodiments, the gateway device 110 may not be able to activateon the first network provider. For example, the gateway device 110 maynot be able to establish wireless connection with the first networkprovider for various types of reasons including, but not limited to,inability to establish IP with the first network provider, high biterror rates, and the like. In such cases, the gateway device 110 maydecide not to activate on the first network provider, and insteadactivate on a second network provider different from the first networkprovider.

Example Method of Performing Network Handovers when a Single NetworkProvider is Activated

FIG. 7 illustrates an example method 700 of performing a networkhandover when a single network provider is activated for the gatewaydevice(s) 110. At block 702, the gateway device 110 determines anupdated location. As described herein, the gateway device 110 maydetermine its location using the location determination module 310. Atblock 704, the gateway device 110 identifies another map tile of thenetwork provider map. The new map tile may be different from a previousmap tile the gateway device 110 was located within. The identificationof the new map tile may be based at least in part on the updatedlocation of the gateway device 110. The updated location of the gatewaydevice 110 may be associated with the new map tile.

At block 706, the gateway device 110 identifies network desirabilityinformation associated with the new map tile. As described herein, eachmap tile of a network provider map may be associated with networkdesirability information, which may include network desirability indexassociated with each of network providers associated with the gatewaydevice 110. For example, the gateway device 110 may be associated withNetwork Provider A and Network Provider B. The network provider map forthe gateway device 110 may in turn include network desirabilityinformation associated with Network Provider A and Network Provider B.

At block 708, the gateway device 110 analyzes the network desirabilityinformation associated with the updated map tile to determine whetherthe network desirability information satisfies a first desirabilitycondition. As described herein, the network desirability information mayinclude network desirability index associated with each of networkproviders, for example, Network Provider A and Network Provider B,associated with the gateway device 110. If the first desirabilitycondition is satisfied, the gateway device 110, at block 710, does notperform a network activation (for example, maintains activation onNetwork Provider A, and does not activation Network Provider B).

If the first desirability condition is not satisfied, the gateway device110, at block 712, analyzes the network desirability informationassociated with the updated map tile with respect to a seconddesirability condition. If the second desirability condition is notsatisfied, the gateway device 110, at block 714, does not perform anetwork activation (for example, maintains activation on NetworkProvider A, and does not activation Network Provider B). If the seconddesirability condition is satisfied, the gateway device 110, at block716, performs a network activation (for example, activates on andswitches to a new network provider). As described herein, if, forexample, the gateway device 110 is unable to activate on NetworkProvider B (a new network provider) for various reasons, the gatewaydevice 110 remain activated on Network Provider A instead of activatingon Network Provider B.

In various embodiments, the first desirability condition and the seconddesirability condition may be associated with different networkproviders. For example, the first desirability condition may beassociated with an initial network provider (for example, NetworkProvider A) of the gateway device 110, and the second desirabilitycondition may be associated with another network provider (for example,Network Provider B) associated with the gateway device 110.

In some embodiments, the first and the second desirability conditionsmay be associated with the same (for example, equalized) or different(for example, not equalized) threshold network desirability indexvalues. When the gateway device 110 is activated on just one networkprovider, it may apply desirability conditions that are not equalized.For example, a first desirability condition may be associated with afirst threshold value of 0.6 while a second desirability condition maybe associated with a second threshold value of 0.75, where the firstdesirability condition is associated with a current (or present) networkprovider for the gateway device 110 and the second desirabilitycondition is associated with another network provider.

The difference between the first desirability condition and the seconddesirability condition may reflect certain preference for performingnetwork handovers. In some embodiments, the difference between the firstdesirability condition and the second desirability condition (forexample, not equalized as described herein) may reflect a preference toremain with an initial network provider and not activate on another,different network provider. For example, as described herein, the firstdesirability condition may be associated with the initial networkprovider and may be associated with the first threshold value of 0.6 andthe second desirability condition may be associated with a networkprovider other than the initial network provider and may be associatedwith the second threshold value of 0.75. As such, per the method 700described herein, the gateway device 110 will remain on the initialnetwork provider so long as the network desirability index of theinitial network provider is greater than 0.6. However, the gatewaydevice 110 will not activate on and switch to a new network providerunless network desirability index of the new network provider is greaterthan 0.75. Accordingly, such desirability conditions may indicate thatwider range of network desirability index (between 0.6 and 1.0) may beacceptable for the initial network provider than for the new networkprovider (between 0.75 and 1.0).

Example Method of Performing Network Handovers when One or More NetworkProviders are Activated

In operation, the gateway device 110 may be activated on more than onenetwork provider, for example, Network Provider A and Network ProviderB. Depending on whether the gateway device 110 is activated on just onenetwork provider or more than one network providers, the gateway device110 may apply different network desirability conditions. In someembodiments, the network desirability conditions (or thresholds) mayautomatically update depending on the number of network providersactivated for the gateway device 110.

For example, the gateway device 110 may initially be activated only onNetwork Provider A, and have a first desirability condition associatedwith Network Provider A and a second desirability condition associatedwith Network Provider B. The first desirability condition and the seconddesirability condition may not be equalized to reflect the preferencethe gateway device 110 may have on its current network provider (forexample, Network Provider A). For example, by configuring the firstdesirability condition less stringent than the second desirabilitycondition, the gateway device 110 may be configured to prefer NetworkProvider A over Network Provider B.

In some embodiments, the first desirability condition and the seconddesirability condition may change when the gateway device 110 isactivated on both Network Provider A and Network Provider B. The firstdesirability condition and the second desirability condition may or maynot be equalized when the gateway device 110 is activated on bothNetwork Provider A and Network Provider B

When the conditions are equalized, for example, one condition may not beless or more stringent than other condition(s). In some examples, thefirst desirability condition and the second desirability condition maybe the same when the conditions are equalized. In some embodiments,equalized conditions may be associated with the same threshold conditionor threshold value. For example, prior to being equalized, the firstdesirability condition may have a first desirability threshold value of0.5 and the second desirability condition may have a second desirabilitythreshold value of 0.75. When equalized, the first desirabilitythreshold value and the second desirability threshold value may both be0.5.

In various embodiments, the first desirability condition and the seconddesirability condition may not be equalized when the gateway device 110is activated on both Network Provider A and Network Provider B. Suchconfiguration, as described herein, may reflect the preference of thegateway device 110. For example, if the gateway device 110 prefers to beactivated on Network Provider B over Network Provider A, it may adjustthe desirability conditions (for example, the first desirabilitycondition and the second desirability condition) accordingly so that theconditions favor activation on Network Provider B over Network ProviderA, and vice versa.

In some embodiments, the first desirability condition and the seconddesirability condition may not change when the gateway device 110 isactivated on both Network Provider A and Network Provider B.

In some instances, the gateway device 110 may not be able to establish areliable connection with a network provider that otherwise satisfiesdesirability conditions. For example, the gateway device 110 may not beable to establish a reliable connection with a network provider for manyreasons including, but not limited to, inability to establish IP withthe network provider, high bit error rates, and the like. In suchinstances, the gateway device 110 may decide handover and/or activate ona second network provider instead of remaining on the currentlypreferred network provider.

Example Method of Generating a Network Provider Map

FIG. 8 illustrates an example method 800 of generating a networkprovider map, according to various embodiments described herein.

In some embodiments, at block 802, the management server 150 optionallyreceives an image of a geographical location. The image can be receivedfrom the data sources 140 via the network 130, or from the locationdatabase 260 as described herein. In some embodiments, at block 804, themanagement server 150 optionally divides the image into a grid with maptiles. The map tiles may be associated with a geographical map or ageographical region. Each of the map tiles may be associated with aportion of the geographical map or the geographical region representedby the map tiles. The grid may be drawn to divide the image intodifferent boundaries including, but not limited to, physical boundaries(for example, rivers, mountain ranges, oceans, lakes, deserts, canyons,and the like), city boundaries, town boundaries, country boundaries, andthe like. Alternatively, the map tiles may reflect regular orsemi-regular shapes, as described above.

At block 806, the management server 150 receives network desirabilityinformation associated with network providers associated with thegateway device 110 or the management server 150. A list of networkproviders associated with the gateway device 110 and a list of networkproviders associated with the management server 150 may be the same ordifferent. In some embodiments, the network desirability informationassociated with network providers may be collected and gathered from oneor more gateway devices 110. The network desirability information mayinclude historical network desirability data for network providers atdifferent geographical locations.

At block 808, the management server 150 identifies a first map tile fromthe image. The identification of the first map tile can includeassigning each of the map tiles with a unique map tile identifier andidentifying the first map tile base at least in part on the respective,corresponding unique map tile identifier.

At block 810, the management server 150 identifies a first networkdesirability information associated with a first network provider andthe first map tile. As described herein, the management server 150 canreceive the first network desirability information from the networkdatabase 264 or the data sources 140 via the network 130. The firstnetwork desirability information may include a network desirabilityindex associated with the first network provider and the first map tile.At block 812, the management server 150 identifies a second networkdesirability information associated with a second network provider andthe first map tile. As described herein, the management server 150 canreceive the second network desirability information from the networkdatabase 264 or the data sources 140 via the network 130. The secondnetwork desirability information may include a network desirabilityindex associated with the second network provider and the first maptile.

At block 814, the management server 150 associates the first map tilewith the first network desirability information with the second networkdesirability information. In some embodiments, the management server 150may be associated the first map tile with analysis of the first networkdesirability information and the second network desirabilityinformation. The analysis of the network desirability information mayinclude: comparison between the first network desirability index and thesecond network desirability index; comparison of the first networkdesirability index to a first threshold; comparison of the secondnetwork desirability index to a second threshold; and the like.

At block 816, the management server 150 displays the first networkdesirability information and the second network desirability informationin the first map tile. In some embodiments, the management server 150may display: comparison between the first network desirability index andthe second network desirability index; comparison of the first networkdesirability index to a first threshold; comparison of the secondnetwork desirability index to a second threshold; and the like.

Handovers from Back-Up Network Subscription Identifiers to PrimaryNetwork Subscription Identifiers

As discussed above, the gateway device may be connected to a network ofa network subscription identifier A and may determine to switch to anetwork of network subscription identifier B. Thus the gateway devicemay be disconnected from the network of the network subscriptionidentifier A and activated on the network of the network subscriptionidentifier B. Each of the network subscription identifier A and thenetwork subscription identifier B may be associated with a particularnetwork provider. In some embodiments, the network subscriptionidentifier A and the network subscription identifier B may be associatedwith the same network provider. In other embodiments, the networksubscription identifier A and the network subscription identifier B maybe associated with different network providers. As the gateway devicemay have a network preference to be connected on a network of thenetwork subscription identifier A (e.g., a cost preference, aperformance preference, or any other preference), the gateway device mayperiodically scan (e.g., an active scan or a passive scan) network datato determine if a network of the network subscription identifier A isavailable. For example, while connected to the network of the networksubscription identifier B, the gateway device can scan additionalnetworks of the network subscription identifier A (e.g., networks from acached list of networks or a general list of networks). Further, thegateway device can scan additional networks associated with a pluralityof different network subscription identifiers to determine if servicefor any of the other network subscription identifiers are availableand/or reliable and if the gateway device can switch to any of thedifferent network subscription identifiers. The additional networksscanned by the gateway device may be based on preference (e.g., agateway device preference, a user preference, etc.) for the additionalnetworks over the network that the gateway device is currently activatedon. By scanning the additional networks that include preferred networksof the gateway device, the gateway device can active on a preferrednetwork. Further, this ensures that, while a gateway device may beactivated on or switched to a secondary network (as discussed above),the gateway device can disconnect from the secondary network andactivate on a preferred network based on scanning the additionalnetworks. This enables the gateway device to avoid extended activationon a secondary network when a preferred network is available foractivation. Further, by scanning the additional networks to determinewhen to switch from the secondary network to the primary network, thecost-effectiveness, efficiency, and performance of the gateway devicecan be improved.

The gateway device can identify the additional networks for scanningfrom a cached list of networks. For example, the gateway device canidentify one or more networks from the cached list of networks and scanthe one or more networks. In some embodiments, the gateway device canconduct a general scan of a plurality of networks to identify a subsetof the plurality of networks and compare the subset of the plurality ofnetworks to the cached list of networks. Based on the comparison, thegateway device can identify available networks. The cached list ofnetworks can be stored or cached locally or remotely to the gatewaydevice. The cached list of networks may include one or more networksassociated with a particular network subscription identifier. Forexample, the cached list of networks may include a subset of networksassociated with a first network subscription identifier and anothersubset of networks associated with a second network subscriptionidentifier. Further, the cached list of networks may identify a networkpreference for each of these networks. The gateway device mayperiodically update the cached list of networks to identify networksassociated with a particular network subscription identifier. Further,the gateway device may periodically receive updates for the cached listof networks.

Based on scanning the networks of the cached list of networks whileactivated on a network of a back-up network subscription identifier,gateway device can determine when a network of a primary networksubscription identifier is available for activation. The gateway devicemay be activated on a back-up network subscription identifier based onparticular factors (e.g., network availability, prior networkpreference, etc.) and the gateway device may periodically ornon-periodically scan networks associated with the primary networksubscription identifier(s) to determine when a switch can occur from thenetwork associated with the back-up network subscription identifier tothe network. Based on scanning the networks associated with the primarynetwork subscription identifier(s), the gateway device may determinewhether a given network can be characterized as available based onidentified network characteristics of the network. Based on thisavailability information, the gateway device can determine when thegateway device can perform a handover from the back-up networksubscription identifier to the primary network subscription identifier.In order to perform the handover, the gateway device may be disconnectedfrom the network associated with the back-up network subscriptionidentifier and may be activated on an available network associated withthe primary network subscription identifier.

Example Embodiments of Network Handovers Between Networks

FIG. 9 depicts interactions among various components shown in FIG. 1 forhandover between network subscription identifiers of a gateway device inaccordance with aspects of the present disclosure. The environment 900may include various components implemented in a configuration asidentified in FIG. 1. The environment 900 may include a gateway device110, a primary network subscription identifier 902, a secondary networksubscription identifier 904, and a network cache 906. The network cache906 may include any cache or database identifying a list of networks(e.g., a list of networks associated with a SIM). Further, the networkcache 906 may include one or more of the network provider database 268as seen in FIG. 2 or the network cache 360 as seen in FIG. 3. Thenetwork cache 906 may be generated by the management server andtransmitted and/or provided to the gateway device 110. Further, thenetwork cache 906 may be location specific. For example, the networkcache 906 may store a list of networks specific to a particular SIM in aparticular country or geographic location. It will be understood thatthe environment 900 may include more, less, or different components.

As shown in FIG. 9 at [1], the gateway device 110 can activate on afirst network associated with a first network provider using a primarynetwork subscription identifier 902. The first network provider and/orthe primary network subscription identifier 902 may be associated withmultiple networks and the gateway device may identify the first networkfrom the multiple networks for activation. Further, the gateway device110 may activate on the first network based on a network preference forthe first network provider, the primary network subscription identifier902, and/or the first network. The gateway device 110, based onactivating on the first network associated with the first networkprovider using the primary network subscription identifier 902, mayidentify networks associated with the primary network subscriptionidentifier 902. While activated on the first network associated with thefirst network provider, the gateway device 110 can generate a list ofnetworks based on the identified networks and cache the list of networksin a network cache (e.g., the network cache 906).

At [2], the gateway device 110 determines to switch from the firstnetwork associated with a first network provider to a secondary networkassociated with a second network provider using a secondary networksubscription identifier 904. In some embodiments, the first networkprovider and the second network provider may be the same or differentnetwork providers. As discussed above, the gateway device 110 maydetermine to switch (e.g., handover) from the first network to thesecondary network based on a network desirability of the first networkand/or the secondary network. For example, the location of the gatewaydevice 110 may be updated from a first location to a second location.Based on the updated location of the gateway device 110, the networkdesirability of the secondary network may increase and it may bedesirable for the gateway device 110 to switch to the secondary network.While the first network, the primary network subscription identifier902, and/or the first network provider may be preferred (e.g., by thegateway device or the user), the network desirability of the secondarynetwork and/or the first network may cause the gateway device to switchto the secondary network. Further, the gateway device 110 mayperiodically (e.g., every minute, every ten minutes, every hour, everytwo hours, etc.) or aperiodically send a ping to the management servervia the primary network subscription identifier 902 to determine theresponsiveness of the management server. In some embodiments, if thegateway device 110 does not receive a response to the ping within acertain time period (e.g., one minute), the gateway device 110 may retry(one or more times) to ping the management server via the primarynetwork subscription identifier 902. For example, the gateway device 110may restart the primary network subscription identifier 902 and retrythe ping. If the gateway device 110 does not receive a response to theping within a certain number of retries (e.g., two) or a certain timeperiod (e.g., two minutes), the gateway device 110 can determine toswitch from the first network to the secondary network. Therefore, whilethe gateway device 110 determines to switch from the first network tothe secondary network, the gateway device 110 may maintain a preferencefor the first network and/or the primary network device.

At [3], the gateway device 110 activates on the secondary network usinga secondary network subscription identifier 904. Prior to activating onthe secondary network using the secondary network subscriptionidentifier 904, the gateway device 110 may disconnect from the firstnetwork using the primary network subscription identifier 902. Thesecond network provider and/or the secondary network subscriptionidentifier 902 may be associated with multiple networks and the gatewaydevice may identify the secondary network from the multiple networksassociated with the second network provider and/or the secondary networksubscription identifier 902.

At [4], the gateway device 110 identifies particular networks. Thegateway device 110 may identify networks associated with the primarynetwork subscription identifier 902. In some embodiments, the gatewaydevice 110 may not identify the particular networks and a separatesystem (e.g., the management server) may identify the particularnetworks. In order to identify the particular networks, the gatewaydevice 110 may perform various operations to identify the networks. Thegateway device 110 may periodically identify the networks and update acorresponding list of networks associated with the primary networksubscription identifier 902. Further, the list of networks may be basedon a mobile carrier (e.g., a network provider) associated with theprimary network subscription identifier 902 and/or a mobile carrierplan. For example, particular networks (e.g., roaming networks) may notbe supported by the gateway device 110 under certain carrier plans.Therefore, the gateway device may verify networks using a list ofnetworks supported by the mobile carrier and/or the mobile carrier plan.Based on identifying the networks, the gateway device 110 can generate alist of networks for the primary network subscription identifier 902.Further, the gateway device 110 can generate a list of networks for theprimary network subscription identifier 902 and the secondary networksubscription identifier 904. It will be understood that the gatewaydevice 110 can generate a list of networks for each network subscriptionidentifier associated with the gateway device 110.

In some embodiments, the gateway device 110 may identify the networks byidentifying preferred networks of a user, manager, provider, or anyother entity associated with the gateway device 110. The user mayprovide information identifying the preferred networks to the gatewaydevice 110. The user may update (e.g., periodically) the preferrednetworks. Further, the gateway device 110 may be associated withinformation identifying preferred networks of the primary networksubscription identifier 902 or the user.

In other embodiments, the gateway device 110 may interrogate (e.g.,ping, request information from, etc.) the primary network subscriptionidentifier 902 in order to determine networks that are supported by theprimary network subscription identifier 902. For example, the primarynetwork subscription identifier 902 may track and store informationidentifying networks supported by the primary network subscriptionidentifier 902 and provide the information to the gateway device 110(e.g., prior to, during, or after activation of the primary networksubscription identifier 902). The supported networks may includenetworks that the primary network subscription identifier 902 isconfigured to support to (e.g., networks operating within utilizingtechnology such as a bandwidth supported by the primary networksubscription identifier). For example, the supported networks mayinclude networks utilizing a 100 megahertz bandwidth and 4G networktechnology.

In other embodiments, the gateway device 110 may interrogate the primarynetwork subscription identifier 902 in order to identify a networkcurrently being utilized by the primary network subscription identifier902. For example, the primary network subscription identifier 902 may beutilizing a particular network, and in response to a particular scan(e.g., a query) from the gateway device, the primary networksubscription identifier 902 may provide information identifying thenetwork currently being utilized. The primary network subscriptionidentifier 902 and/or the gateway device 110 may dynamically track thenetworks utilized by the primary network subscription identifier 902 andthe gateway device 110 may obtain (e.g., periodically) informationidentifying the networks from the primary network subscriptionidentifier 902.

In other embodiments, the management server may track networks supportedby particular types of network subscription identifiers. For example,each network subscription identifier may be associated with a particulartype of network subscription identifier, a particular company, aparticular technology, a particular use, or other identifyinginformation. Based on this shared identifying information, certainnetwork subscription identifiers may be grouped together. Further, basedon this shared identifying information, the network subscriptionidentifiers may be capable of utilizing the same networks. Based on thiscapability, the management server may track the networks supported by orutilized by particular network subscription identifiers. Based onidentifying that a particular network is supported by a particularnetwork subscription identifier, the management server may update a listof networks for a group of network subscription identifiers associatedwith the particular subscription identifier identifying that the networkis supported by the group of network subscription identifiers. Themanagement server may obtain (e.g., periodically) informationidentifying supported or preferred networks from the networksubscription identifiers and update corresponding lists of networks.Further, the gateway device 110 may request (e.g., periodically)information identifying supported networks from the management server.The gateway device 110 may provide an indication of the primary networksubscription identifier 902 and based on this indication, the managementserver may identify a group of network subscription identifierscorresponding to the primary network subscription identifier 902 and anassociated list of networks. The management server may provide the listof networks for the primary network subscription identifier 902 to thegateway device 110.

At [5], the gateway device 110 may dynamically update the cached list ofnetworks stored in a network cache 906 using the list of networks. Forexample, the gateway device 110 may dynamically update a cached list ofnetworks stored in a cache of the network subscription identifier towhich the gateway device 110 is currently connected. In someembodiments, the gateway device 110 may dynamically update the cachedlist of networks stored in a cache of a different network subscriptionidentifier. The network cache 906 may be a cache storing network data.Further, the network cache 906 may be local to or remote from thegateway device 110. For example, the network cache 906 may be stored bythe management server or the gateway device 110. The gateway device 110may initially cache the list of networks in the network cache 906 togenerate a cached list of networks for the primary network subscriptionidentifier 902. Subsequently, the gateway device 110 may update thecached list of networks. The gateway device 110 may dynamically updatethe cached list of networks based on identifying previously unidentifiednetworks supported by the primary network subscription identifier 902.In some embodiments, the gateway device 110 may periodically update thecached list of networks.

At [6], the gateway device 110 may identify the cached list of networksfrom the network cache 906. In some embodiments, the gateway device 110may obtain the cached list of networks directly from the primary networksubscription identifier 902. For example, the gateway device 110 mayperiodically or aperiodically scan the primary network subscriptionidentifier 902 and request identification of the networks preferredand/or supported by the primary network subscription identifier 902. Thegateway device 110 may update the cached list of networks and,subsequently, obtain the cached list of networks from the network cache906. For example, the gateway device 110 may obtain the cached list ofnetworks based on a monitoring and/or scanning schedule. Further, thegateway device 110 may generate the monitoring schedule based ondetermining that the gateway device 110 is activated on a secondarynetwork. Based on the monitoring schedule, the gateway device 110 mayobtain the cached list of networks from the network cache 906 formonitoring. In some embodiments, any portion of the steps may beimplemented separately. For example, steps [4], [5], and [6] may occurseparately from steps [1]-[3] and [7]-[10]. Further, steps [4], [5], and[6] may be implemented separately and iteratively in order to identify acached list of networks associated with a particular networksubscription identifier.

At [7], the gateway device 110 may monitor for networks of the cachedlist of networks. The gateway device 110 may monitor for the networks ofthe cached list of networks by scanning external airwaves to determinewhich networks listed within the cached list of networks are available.In some embodiments, the gateway device 110 may scan each network of thecached list of networks. The gateway device 110 may implement any scan(e.g., a public land mobile network scan) to determine the availabilityof a network of the cached list of networks. For example, the gatewaydevice 110 may implement an active scan (e.g., an interfering scan), apassive scan (e.g., a non-interfering scan), a continuous scan, aperiodic scan, an aperiodic scan, etc. The gateway device 110 may submita transmission (e.g., a probe request) to a node of the network andbased on the response, the gateway device can determine an availabilityof the network. Further, the gateway device 110 may passively monitoractivity on the network and determines an availability of the networkbased on the monitored activity of the network. In some embodiments, thegateway device 110 can periodically or continuously implement the scans.The gateway device 110 can implement scans based on temporalinformation, spatial information, or other information associated withthe gateway device 110. For example, the gateway device 110 mayimplement a scan during certain time periods and/or at certain timeintervals (every hour, every twenty-four hours, etc.). Further, thegateway device 110 may implement a scan based on a geolocation orgeofence. For example, the gateway device 110 may implement a scan basedon the location of the gateway device 110 being outside or within ageofence or based on the location of the gateway device 110corresponding to a particular geolocation. Further, the gateway device110 may implement a scan based on additional information associated withthe gateway device 110 or a corresponding vehicle. For example, thegateway device 110 may implement a scan when the gateway device 110 isin motion, is moving at a certain speed, has been moving for aparticular time period, etc. Further, the gateway device 110 mayimplement a scan based on multiple conditions being satisfied. Forexample, the gateway device 110 may implement a scan when the gatewaydevice 110 is in motion and the time is between 12:00 PM and 8:00 PM. Inother embodiments, the gateway device 110 may implement the scans basedon a status of a vehicle associated with the gateway device 110. Forexample, the gateway device 110 may implement the scans when the vehicleis in motion and may not implement the scans when the vehicle is not inmotion.

At [8], the gateway device 110 may determine that a second networkassociated with the primary network subscription identifier 902 isavailable. The gateway device 110 may determine that the second networkis available based on monitoring for the cached list of networks. Insome embodiments, the first network and the second network may be thesame network. For example, the first network may be unavailable at afirst time and available at a second, subsequent time. In otherembodiments, the first network and the second network may be differentnetworks. The gateway device 110 may determine that the gateway device110 should be handed over from the secondary network to the secondnetwork based on a network preference for the second network, the firstnetwork provider, and/or the primary network subscription identifier902. The cached list of networks may include priority informationassociated with the second network and the gateway device 110 maydetermine to handover to the second network from the secondary networkbased on the priority information.

At [9], the gateway device 110 may disconnect from the secondary networkusing the secondary network subscription identifier 904. The gatewaydevice 110 may disconnect from the secondary network by removing(delinking) the connection between the gateway device 110 and thesecondary network. The gateway device 110 may disconnect from thesecondary network based on determining that the second network isavailable and based on determining that the gateway device 110 has anetwork preference for the second network, the first network provider,and/or the primary network subscription identifier 902 when compared tothe secondary network, the second network provider, and/or the secondarynetwork subscription identifier 904. At [10], the gateway device 110 mayactivate on the second network using the primary network subscriptionidentifier 902. Therefore, the gateway device 110 may perform a handover(e.g., switch) from the secondary network utilizing the secondarynetwork subscription identifier 904 to a second network utilizing theprimary network subscription identifier 902.

Example Embodiments of a Cached Network List

FIG. 10 depicts an example schematic diagram depicting an example cachedlist of networks 1000 in accordance with aspects of the presentdisclosure. Illustratively, the example cached list of networks 1000 mayinclude a list of networks that are associated with one or more networksubscription identifiers. For example, the cached list of networks 1000may include a corresponding subset of networks for each networksubscription identifiers of a plurality of network subscriptionidentifiers. Further, the cached list of networks may identify networksassociated with one or more primary network subscription identifiersand/or networks associated with one or more back-up network subscriptionidentifiers. The cached list of networks 1000 may include informationidentifying the networks. For example, the information may identify anetwork, a network subscription identifier associated with the network,a preference for the network, etc. Therefore, the cached list ofnetworks 1000 can correspond to a list of networks associated with agateway device.

The cached list of networks 1000 may include separate lists of networks.For example, the cached list of networks 1000 can include a firstprimary list of networks and a second primary list of networks. Each ofthe separate lists of networks may be associated with particular networksubscription identifiers. It will be understood that the cached list ofnetworks 1000 may include more, less, or different lists of networks.For example, the cached list of networks 1000 may include multiple listsof networks associated with multiple network subscription identifiers.Each network of the cached list of networks 1000 may correspond to aparticular network. For example, the network may be associated withinformation identifying the particular network. Further, each networkmay correspond to a particular network subscription identifier. Forexample, the network may correspond to a network subscription identifierproviding the network to the gateway device. Further, the network may beassociated with one or more network technologies. The one or morenetwork technologies may correspond to network technologies that areoffered by the network subscription identifier via the network. Eachnetwork may further be associated with a priority or preference. Forexample, the priority or preference may indicate a gateway device'sand/or user's preference for a particular network.

In the example of FIG. 10, the cached list of networks 1000 includes aplurality of networks. Further, the cached list of networks 1000includes Network A, Network B, Network C, Network D, and Network E. Itwill be understood that the cached list of networks 1000 may includemore, less, or different networks. The cached list of networks 1000 mayidentify networks that are preferred or supported by the gateway device.In some embodiments, the cached list of networks 1000 may identifynetworks that are associated with a primary network subscriptionidentifier of the gateway device. The gateway device may periodicallyupdate and/or modify the cached list of networks 1000 based on thepreference or support by the gateway device. In some embodiments,another system such as the management server can update and/or modifythe cached list of networks 1000. For example, the gateway device and/orthe management server may periodically identify networks and update thecached list of networks 1000.

Each network of the cached list of networks 1000 may correspond to aparticular network subscription identifier. Further, Network A, NetworkB, and Network C are each associated with a first network subscriptionidentifier, Network D is associated with a second network subscriptionidentifier, and Network E is associated with a third networksubscription identifier. It will be understood that the cached list ofnetworks 1000 may be associated with more, less, or different networksubscription identifiers.

Each network of the cached list of networks 1000 may further correspondto particular network technologies. Further, the network technologiesmay correspond to particular network generations. For example, thenetwork technologies may correspond to a signal strength as defined by aset of network standards. The network technologies may correspond to alist of potential network technologies. For example, the list ofpotential network technologies may include one or more second generation(“2G”), third generation (“3G”), fourth generation (“4G”), fifthgeneration (“5G”), or 4G long term evolution (“LTE”). Each networktechnology may support data speeds up to a certain speed and may utilizecertain bandwidths. For example 2G networks may support data speeds upto 64 kilobytes per second and a bandwidth of 25 megahertz. Further,each network technology may correspond to a type of internet service(e.g., narrowband, broadband, etc.), a type of switching (e.g., packetswitching, circuit switching, etc.), an access system (e.g., codedivision multiple access, beam division multiple access, etc.), and/ordifferent sub-technologies (e.g., multiple input multiple output, globalsystem for mobiles, etc.). It will be understood that the cached list ofnetworks may correspond to more, less, or different network technologyinformation. In the example of FIG. 10, Network A correspond to 2Gnetwork technology, Network B corresponds to 2G network technology and3G network technology, Network C corresponds to 2G network technology,3G network technology, and LTE network technology, Network D correspondsto 2G network technology, 3G network technology, 4G network technology,5G network technology, and LTE network technology, and Network Ecorresponds to 4G network technology and 5G network technology.

Each network of the cached list of networks 1000 may further correspondto a priority or preference level. The priority or preference level maycorrespond to any numerical, alphabetical, alphanumerical, symbolical,etc. representation of a system preference for a particular network.Further, the gateway device, the user, or another computing system mayidentify the priority or preference level for particular networks. Insome embodiments, the priority or preference level may correspond to theparticular network subscription identifier. The gateway device maydynamically assign or map networks to priority or preference levelsbased on a network strength or other network capabilities. In someembodiments, each of the networks of the cached list of networks 1000may include the same priority or preference level. For example, thegateway device may include networks in the cached list of networks 1000based upon determining that the networks satisfy a desired preferencelevel. Further, the cached list of networks 1000 may include onlynetworks that are associated with a preference level of 5. In theexample of FIG. 10, the priority of the cached list of networks 1000 maycorrespond to a range between 1 and 5 where a priority of 1 represents alow priority and a priority of 5 represents a high priority. Further,the Network A has a priority of 1, the Network B has a priority of 5,the Network C has a priority of 4, the Network D has a priority of 4,and the Network E has a priority of 2. Therefore, the cached list ofnetworks 1000 may indicate a highest preference for Network B and alowest preference for Network A. It will be understood that the cachedlist of networks 1000 may correspond to any priorities or preferencelevels. Further, the cached list of networks 1000 may correspond to anyrange of priorities or preferences levels.

Example Method of Performing Network Handovers from a Secondary Network

FIG. 11 illustrates an example method 1100 of performing a handover froma secondary network associated with a secondary network subscriptionidentifier to a primary network associated with a primary networksubscription identifier, according to various embodiments describedherein.

At block 1102, the gateway device (e.g., the gateway system) activateson the secondary network using a secondary network subscriptionidentifier. The gateway device may include a communication moduleincluding one or more network subscription identifiers. For example, thecommunication module may include a primary network subscriptionidentifier and a secondary network subscription identifier. The primarynetwork subscription identifier may be associated with a primary networkprovider and the secondary network subscription identifier may beassociated with a secondary network provider. Prior to activating on thesecondary network, the gateway device may activate on a network usingthe primary network subscription identifier. Further, the gateway devicemay determine to switch from the network to the secondary network (e.g.,based on network desirability) and the activation on the secondarynetwork may be based on determining to switch from the network to thesecondary network. In some embodiments, the gateway device may,periodically or aperiodically, confirm a connectivity of thecommunication module to the management server. For example, afteractivating on the secondary network, the gateway device may periodicallyconfirm that the communication module can communicate with themanagement server via the secondary network. In some embodiments, thecommunication module may indicate a level of connectivity (e.g., anindication of a signal level). In other embodiments, the gateway devicemay not rely on the indicated level of connectivity by the communicationand, instead or additionally, may cause the communication module to pingthe management server by sending a test message to confirm a connectionbetween the communication module and the management server. If thecommunication module is unable to send the ping and/or does not receivea response to the ping, the gateway server may restart the communicationmodule. Further, after restarting the communication module, the gatewayserver may retry the ping. Therefore, the gateway device may determineconnectivity and/or signal quality of the communication module indifferent locations. If the gateway device determines that thecommunication module is not connected to the management server and/orthe connection is insufficient after a particular number of pings and/orrestarts, the gateway device may activate on a different network viaanother network subscription identifier of the gateway device. Further,the gateway device may activate on another communication moduleassociated with the gateway device (e.g., where the gateway deviceincludes multiple communication modules).

At block 1104, the gateway device accesses a cached list of networks ofthe primary network subscription identifier. The cached list of networksmay include one or more primary networks associated with the primarynetwork subscription identifier. Further, the cached list of networksmay include one or more networks previously utilized by the primarynetwork subscription identifier. The gateway device may periodicallygenerate the list of networks and store the list of networks in anetwork cache to generate the cached list of networks. The gatewaydevice may periodically update the cached list of networks. In order togenerate and/or update the cached list of networks, the gateway devicemay identify one or more preferred networks of the primary networksubscription identifier and may include the one or more preferrednetworks in the cached list of networks. Further, the gateway device mayobtain (e.g., periodically, continuously, etc.) a current networkassociated with the primary network subscription identifier and maydynamically update the cached list of networks based on identifying thecurrent network associated with the primary network subscriptionidentifier. Further, the gateway device may identify one or moresupported networks of the primary network subscription identifier anddynamically update the cached list of networks based on identifying theone or more supported networks of the primary network subscriptionidentifier. Additionally, the gateway device may identify a group ofnetwork subscription identifiers including the primary networksubscription identifier. The gateway device may identify supportednetworks of each network subscription identifier of the group of networksubscription identifiers and dynamically update the cached list ofnetworks based on identifying the supported networks of each of thegroup of network subscription identifiers. In some embodiments, thecached list of networks may be based on networks supported by aparticular carrier (network provider) and/or carrier plan (networkprovider plan) associated with the primary network subscriptionidentifier.

At block 1106, the gateway device scans for other available networks.Further, the gateway device may scan the cached list of networks forother available networks. The gateway device may scan for otheravailable networks while the gateway device is active (e.g., activated)on the secondary network. Further, the gateway device may scan for otheravailable networks while the gateway device is inactive on the networkassociated with the primary network subscription identifier. The scanmay include a passive scan, an active scan, a continuous scan, aperiodic scan, or an aperiodic scan. For example, the scan may include apublic land mobile network scan. The gateway device may implement thescan in response to identifying a vehicle metric and determining thatthe vehicle metric corresponds to a particular status. The vehiclemetric may include one or more of cruise control, coasting, acceleratorpedal, idling, anticipating, engine rotations per minute, motorrotations per minute, or motor power. The gateway device may verify thatthe vehicle metric corresponds to a particular status (e.g., the vehicleis idling or is not idling) prior to implementing the scan.

At block 1108, the gateway device determines that a primary networkassociated with the primary network subscription identifier and obtainedfrom the cached list of networks is available. The gateway device maydetermine that the primary network is available based on scanning thecached list of networks for other available networks. In someembodiments, determining that the primary network is available may bebased on network characteristics of the primary network (e.g., comparingthe network characteristics with particular network thresholds).

At block 1110, the gateway device disconnects from the secondarynetwork. The gateway device may deactivate on the secondary networkusing the secondary network subscription identifier in response todetermining that the primary network is available.

At block 1112, the gateway device connects to the primary network usingthe primary network subscription identifier. The gateway device mayconnect to the primary network the primary network subscriptionidentifier in response to determining that the primary network isavailable. Further, the gateway device may connect to the primarynetwork after disconnecting from the secondary network. The gatewaydevice may connect to the primary network based on a network preferenceassociated with the gateway device. The network preference may indicatewhich network subscription identifier over other network subscriptionidentifiers is prioritized or preferred by the gateway device. Forexample, the network preference may be based at least in part on alocation of the gateway device or a prior connection of the gatewaydevice on the network.

Example Method of Determining Availability of Networks

FIG. 12 illustrates an example method 1200 of determining anavailability of a network in order to perform a handover between aprimary network subscription identifier and a secondary networksubscription identifier, according to various embodiments describedherein.

At block 1202, the gateway device determines network characteristics ofthe network. The gateway device may determine the networkcharacteristics of the network in order to determine the availability ofthe network. In some embodiments, a different device and/or system maydetermine the network characteristics of the network. For example, themanagement server may determine the network characteristics of thenetwork. Further, the gateway device may determine the networkcharacteristics based on identifying the network from the cached list ofnetworks. The network characteristics may include one or more of datatransmissibility, data transmission speed, signal strength, signalavailability, signal to noise ratio, a number of dropped calls ordropped communications, etc.

At block 1204, the gateway device compares the network characteristicswith network thresholds. The gateway device may obtain the networkthresholds for the comparison from the management server, a usercomputing device, or any other device or system. Further, the gatewaydevice may periodically obtain the network thresholds. The networkthresholds may identify required network characteristics for a networkto be considered available. For example, the network thresholds mayinclude a required bandwidth, a required signal strength, requiredsecurity settings, required network stability, a required internet speed(e.g., an upload speed and/or a download speed), or any other networkcharacteristics. The network characteristics may be based on userpreference, gateway device preference, or any other preference orrequirements. For example, a particular gateway device may require 25megabytes per second download speed and 25 megabytes per second uploadspeed. Each of the network thresholds may correspond to a particularnetwork characteristic. Further, the gateway device may parse thenetwork characteristics and network thresholds to identify correspondingnetwork characteristics and network thresholds for comparison.

At block 1206, the gateway device determines that a network is availablebased on comparing the network characteristics with the networkthresholds. The gateway device may identify a network as available basedon each of the network characteristics matching and/or exceedingcorresponding network thresholds.

At block 1208, the gateway device stores information identifying thatthe network is available. In response to storing the informationidentifying that the network is available, the gateway device mayinitiate a handover process from a secondary network associated with asecondary network subscription identifier to the network associated witha primary network subscription identifier.

List of Example Numbered Embodiments

The following is a list of example numbered embodiments. The featuresrecited in the below list of example embodiments can be combined withadditional features disclosed herein. Furthermore, additional inventivecombinations of features are disclosed herein, which are notspecifically recited in the below list of example embodiments and whichdo not include the same features as the specific embodiments listedbelow. For sake of brevity, the below list of example embodiments doesnot identify every inventive aspect of this disclosure. The below listof example embodiments are not intended to identify key features oressential features of any subject matter described herein.

-   -   Clause 1: A gateway system configured to provide network        communications, the gateway system comprising:        -   a communication module comprising a primary network            subscription identifier and a secondary network subscription            identifier;        -   a computer readable storage medium having program            instructions embodied therewith; and        -   one or more processors configured to execute the program            instructions to cause the gateway system to:            -   activate the gateway system on a secondary network using                the secondary network subscription identifier;            -   access a cached list of networks of the primary network                subscription identifier;            -   while the gateway system is active on the secondary                network, scan for other available networks;            -   based on the scan, determine that a network, from the                cached list of networks of the primary network                subscription identifier, is available; and            -   in response to determining the network is available:                -   disconnect the gateway system from the secondary                    network; and                -   connect the gateway system on the network using the                    primary network subscription identifier.    -   Clause 2: The gateway system of Clause 1, wherein the one or        more processors are configured to execute the program        instructions to further cause the gateway system to:        -   identify one or more preferred networks of the primary            network subscription identifier, wherein the cached list of            networks comprises the one or more preferred networks.    -   Clause 3: The gateway system of Clause 1, wherein the one or        more processors are configured to execute the program        instructions to further cause the gateway system to:        -   identify a current network associated with the primary            network subscription identifier; and        -   dynamically update the cached list of networks based on            identifying the current network associated with the primary            network subscription identifier.    -   Clause 4: The gateway system of Clause 1, wherein the one or        more processors are configured to execute the program        instructions to further cause the gateway system to:        -   identify one or more supported networks of the primary            network subscription identifier; and        -   dynamically update the cached list of networks based on            identifying the one or more supported networks of the            primary network subscription identifier.    -   Clause 5: The gateway system of Clause 1, wherein the one or        more processors are configured to execute the program        instructions to further cause the gateway system to:        -   identify a group of network subscription identifiers            comprising the primary network subscription identifier;        -   identify supported networks of each of the group of network            subscription identifiers; and        -   dynamically update the cached list of networks based on            identifying the supported networks of each of the group of            network subscription identifiers.    -   Clause 6: The gateway system of Clause 1, wherein the cached        list of networks comprises one or more networks previously        utilized by the primary network subscription identifier.    -   Clause 7: The gateway system of any one of Clauses 1-6, wherein        the cached list of networks is based at least in part on a        carrier plan with a network carrier associated with the primary        network subscription identifier.    -   Clause 8: The gateway system of any one of Clauses 1-6, wherein        the one or more processors are configured to execute the program        instructions to further cause the gateway system to:        -   activate the gateway system on the network using the primary            network subscription identifier, and        -   determine to switch the gateway system from the network            associated with the primary network subscription identifier            to the secondary network associated with the secondary            network subscription identifier, wherein activating the            gateway system on the secondary network is based at least in            part on determining to switch the gateway system from the            network associated with the primary network subscription            identifier to the secondary network associated with the            secondary network subscription identifier. Clause 9: The            gateway system of Clause 1, wherein to scan for other            available networks, the one or more processors are            configured to execute the program instructions to further            cause the gateway system to, while the gateway system is            inactive on the network, scan for other available networks.    -   Clause 10: The gateway system of Clause 1, wherein the one or        more processors are configured to execute the program        instructions to further determine one or more network        characteristics of the network, wherein the one or more network        characteristics comprise data transmissibility, data        transmission speed, signal strength, signal availability, signal        to noise ratio, or number of dropped calls or dropped        communications, wherein determining that the network is        available is based on the one or more network characteristics.    -   Clause 11: The gateway system of Clause 1, wherein the one or        more processors are configured to execute the program        instructions to further cause the gateway system to:        -   determine one or more network characteristics of the            network; and        -   compare the one or more network characteristics with one or            more network thresholds, wherein determining that the            network is available is based at least in part on comparing            the one or more network characteristics with the one or more            network thresholds.    -   Clause 12: The gateway system of Clause 1, wherein activating        the gateway system on the network is based on a network        preference associated with the gateway system, wherein the        network preference indicates which network subscription        identifier of a plurality of network subscription identifiers is        prioritized over other network subscription identifiers of the        plurality of network subscription identifiers.    -   Clause 13: The gateway system of Clause 12, wherein the network        preference is based at least in part on a location of the        gateway system or a prior activation of the gateway system on        the network.    -   Clause 14: The gateway system of Clause 1, wherein activating        the gateway system on the network comprises activating the        gateway system on the network after disconnecting the gateway        system from the secondary network.    -   Clause 15: The gateway system of Clause 1, wherein the one or        more processors are configured to execute the program        instructions to further cause the gateway system, to:        -   identify a vehicle metric, wherein the vehicle metric is            associated with at least one of: cruise control, coasting,            accelerator pedal, idling, anticipating, engine rotations            per minute, motor rotations per minute, or motor power;        -   determine the vehicle metric corresponds to a particular            status, wherein the scan is based on determining the vehicle            metric corresponds to the particular status.    -   Clause 16: The gateway system of Clause 1, wherein the scan        comprises:        -   a passive scan;        -   an active scan;        -   a continuous scan;        -   a periodic scan; or        -   an aperiodic scan.    -   Clause 17: The gateway system of Clause 1, wherein the primary        network subscription identifier and the secondary network        subscription identifier are each associated with a same network        provider.    -   Clause 18: The gateway system of Clause 1, wherein the primary        network subscription identifier is associated with a first        network provider and the secondary network subscription        identifier is associated with a second network provider.    -   Clause 19: The gateway system of Clause 1, wherein each of the        primary network subscription identifier and the secondary        network subscription identifier comprise a particular subscriber        identification module card, a particular subscriber        identification module profile, or a particular carrier        subscription.    -   Clause 20: A computer-implemented method comprising:        -   activating a gateway system on a secondary network using a            secondary network subscription identifier, wherein the            gateway system comprises a primary network subscription            identifier and the secondary network subscription            identifier;        -   accessing a cached list of networks of the primary network            subscription identifier;        -   while the gateway system is active on the secondary network,            scanning for other available networks;        -   based on the scan, determining that a network, from the            cached list of networks of the primary network subscription            identifier, is available; and        -   in response to determining the network is available:            -   disconnecting the gateway system from the secondary                network; and            -   connecting the gateway system on the network using the                primary network subscription identifier.

Additional Implementation Details and Embodiments

Various embodiments of the present disclosure may be a system, a method,and/or a computer program product at any possible technical detail levelof integration. The computer program product may include a computerreadable storage medium (or mediums) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent disclosure.

For example, the functionality described herein may be performed assoftware instructions are executed by, and/or in response to softwareinstructions being executed by, one or more hardware processors and/orany other suitable computing devices. The software instructions and/orother executable code may be read from a computer readable storagemedium (or mediums).

The computer readable storage medium can be a tangible device that canretain and store data and/or instructions for use by an instructionexecution device. The computer readable storage medium may be, forexample, but is not limited to, an electronic storage device (includingany volatile and/or non-volatile electronic storage devices), a magneticstorage device, an optical storage device, an electromagnetic storagedevice, a semiconductor storage device, or any suitable combination ofthe foregoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a solid state drive, a random accessmemory (RAM), a read-only memory (ROM), an erasable programmableread-only memory (EPROM or Flash memory), a static random access memory(SRAM), a portable compact disc read-only memory (CD-ROM), a digitalversatile disk (DVD), a memory stick, a floppy disk, a mechanicallyencoded device such as punch-cards or raised structures in a groovehaving instructions recorded thereon, and any suitable combination ofthe foregoing. A computer readable storage medium, as used herein, isnot to be construed as being transitory signals per se, such as radiowaves or other freely propagating electromagnetic waves, electromagneticwaves propagating through a waveguide or other transmission media (forexample, light pulses passing through a fiber-optic cable), orelectrical signals transmitted through a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers, and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions (as also referred to herein as,for example, “code,” “instructions,” “module,” “application,” “softwareapplication,” and/or the like) for carrying out operations of thepresent disclosure may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Java, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. Computer readable program instructions may be callable fromother instructions or from itself, and/or may be invoked in response todetected events or interrupts. Computer readable program instructionsconfigured for execution on computing devices may be provided on acomputer readable storage medium, and/or as a digital download (and maybe originally stored in a compressed or installable format that requiresinstallation, decompression or decryption prior to execution) that maythen be stored on a computer readable storage medium. Such computerreadable program instructions may be stored, partially or fully, on amemory device (for example, a computer readable storage medium) of theexecuting computing device, for execution by the computing device. Thecomputer readable program instructions may execute entirely on a user'scomputer (for example, the executing computing device), partly on theuser's computer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider). In some embodiments,electronic circuitry including, for example, programmable logiccircuitry, field-programmable gate arrays (FPGA), or programmable logicarrays (PLA) may execute the computer readable program instructions byutilizing state information of the computer readable programinstructions to personalize the electronic circuitry, in order toperform aspects of the present disclosure.

Aspects of the present disclosure are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of thedisclosure. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart(s) and/or block diagram(s)block or blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks. For example, the instructions may initially be carried on amagnetic disk or solid state drive of a remote computer. The remotecomputer may load the instructions and/or modules into its dynamicmemory and send the instructions over a telephone, cable, or opticalline using a modem. A modem local to a server computing system mayreceive the data on the telephone/cable/optical line and use a converterdevice including the appropriate circuitry to place the data on a bus.The bus may carry the data to a memory, from which a processor mayretrieve and execute the instructions. The instructions received by thememory may optionally be stored on a storage device (for example, asolid state drive) either before or after execution by the computerprocessor.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present disclosure. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. In addition, certain blocks may be omitted insome implementations. The methods and processes described herein arealso not limited to any particular sequence, and the blocks or statesrelating thereto can be performed in other sequences that areappropriate.

It will also be noted that each block of the block diagrams and/orflowchart illustration, and combinations of blocks in the block diagramsand/or flowchart illustration, can be implemented by special purposehardware-based systems that perform the specified functions or acts orcarry out combinations of special purpose hardware and computerinstructions. For example, any of the processes, methods, algorithms,elements, blocks, applications, or other functionality (or portions offunctionality) described in the preceding sections may be embodied in,and/or fully or partially automated via, electronic hardware suchapplication-specific processors (for example, application-specificintegrated circuits (ASICs)), programmable processors (for example,field programmable gate arrays (FPGAs)), application-specific circuitry,and/or the like (any of which may also combine custom hard-wired logic,logic circuits, ASICs, FPGAs, etc. with custom programming/execution ofsoftware instructions to accomplish the techniques).

Any of the above-mentioned processors, and/or devices incorporating anyof the above-mentioned processors, may be referred to herein as, forexample, “computers,” “computer devices,” “computing devices,” “hardwarecomputing devices,” “hardware processors,” “processing units,” and/orthe like. Computing devices of the above-embodiments may generally (butnot necessarily) be controlled and/or coordinated by operating systemsoftware, such as Mac OS, iOS, Android, Chrome OS, Windows OS (forexample, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10,Windows Server, etc.), Windows CE, Unix, Linux, SunOS, Solaris,Blackberry OS, VxWorks, or other suitable operating systems. In otherembodiments, the computing devices may be controlled by a proprietaryoperating system. Conventional operating systems control and schedulecomputer processes for execution, perform memory management, providefile system, networking, I/O services, and provide a user interfacefunctionality, such as a graphical user interface (“GUI”), among otherthings.

As described above, in various embodiments certain functionality may beaccessible by a user through a web-based viewer (such as a web browser),or other suitable software program. In such implementations, the userinterface may be generated by a server computing system and transmittedto a web browser of the user (for example, running on the user'scomputing system). Alternatively, data (for example, user interfacedata) necessary for generating the user interface may be provided by theserver computing system to the browser, where the user interface may begenerated (for example, the user interface data may be executed by abrowser accessing a web service and may be configured to render the userinterfaces based on the user interface data). The user may then interactwith the user interface through the web-browser. User interfaces ofcertain implementations may be accessible through one or more dedicatedsoftware applications. In certain embodiments, one or more of thecomputing devices and/or systems of the disclosure may include mobilecomputing devices, and user interfaces may be accessible through suchmobile computing devices (for example, smartphones and/or tablets).

Many variations and modifications may be made to the above-describedembodiments, the elements of which are to be understood as being amongother acceptable examples. All such modifications and variations areintended to be included herein within the scope of this disclosure. Theforegoing description details certain embodiments. It will beappreciated, however, that no matter how detailed the foregoing appearsin text, the systems and methods can be practiced in many ways. As isalso stated above, it should be noted that the use of particularterminology when describing certain features or aspects of the systemsand methods should not be taken to imply that the terminology is beingre-defined herein to be restricted to including any specificcharacteristics of the features or aspects of the systems and methodswith which that terminology is associated.

Conditional language, such as, among others, “can,” “could,” “might,” or“may,” unless specifically stated otherwise, or otherwise understoodwithin the context as used, is generally intended to convey that certainembodiments include, while other embodiments may not include, certainfeatures, elements, and/or steps. Thus, such conditional language is notgenerally intended to imply that features, elements and/or steps are inany way required for one or more embodiments or that one or moreembodiments necessarily include logic for deciding, with or without userinput or prompting, whether these features, elements and/or steps areincluded or are to be performed in any particular embodiment.

The term “substantially” when used in conjunction with the term“real-time” forms a phrase that will be readily understood by a personof ordinary skill in the art. For example, it is readily understood thatsuch language will include speeds in which no or little delay or waitingis discernible, or where such delay is sufficiently short so as not tobe disruptive, irritating, or otherwise vexing to a user.

Conjunctive language such as the phrase “at least one of X, Y, and Z,”or “at least one of X, Y, or Z,” unless specifically stated otherwise,is to be understood with the context as used in general to convey thatan item, term, etc. may be either X, Y, or Z, or a combination thereof.For example, the term “or” is used in its inclusive sense (and not inits exclusive sense) so that when used, for example, to connect a listof elements, the term “or” means one, some, or all of the elements inthe list. Thus, such conjunctive language is not generally intended toimply that certain embodiments require at least one of X, at least oneof Y, and at least one of Z to each be present.

The term “a” as used herein should be given an inclusive rather thanexclusive interpretation. For example, unless specifically noted, theterm “a” should not be understood to mean “exactly one” or “one and onlyone”; instead, the term “a” means “one or more” or “at least one,”whether used in the claims or elsewhere in the specification andregardless of uses of quantifiers such as “at least one,” “one or more,”or “a plurality” elsewhere in the claims or specification.

The term “comprising” as used herein should be given an inclusive ratherthan exclusive interpretation. For example, a general purpose computercomprising one or more processors should not be interpreted as excludingother computer components, and may possibly include such components asmemory, input/output devices, and/or network interfaces, among others.

While the above detailed description has shown, described, and pointedout novel features as applied to various embodiments, it may beunderstood that various omissions, substitutions, and changes in theform and details of the devices or processes illustrated may be madewithout departing from the spirit of the disclosure. As may berecognized, certain embodiments of the inventions described herein maybe embodied within a form that does not provide all of the features andbenefits set forth herein, as some features may be used or practicedseparately from others. The scope of certain inventions disclosed hereinis indicated by the appended claims rather than by the foregoingdescription. All changes which come within the meaning and range ofequivalency of the claims are to be embraced within their scope.

What is claimed is:
 1. A gateway system configured to provide networkcommunications, the gateway system comprising: a communication modulecomprising a primary network subscription identifier and a secondarynetwork subscription identifier; a computer readable storage mediumhaving program instructions embodied therewith; and one or moreprocessors configured to execute the program instructions to cause thegateway system to: activate the gateway system on a secondary networkusing the secondary network subscription identifier; access a cachedlist of networks of the primary network subscription identifier; whilethe gateway system is active on the secondary network, scan for otheravailable networks; based on the scan, determine that a network, fromthe cached list of networks of the primary network subscriptionidentifier, is available; and in response to determining the network isavailable: disconnect the gateway system from the secondary network; andconnect the gateway system on the network using the primary networksubscription identifier.
 2. The gateway system of claim 1, wherein theone or more processors are configured to execute the programinstructions to further cause the gateway system to: identify one ormore preferred networks of the primary network subscription identifier,wherein the cached list of networks comprises the one or more preferrednetworks.
 3. The gateway system of claim 1, wherein the one or moreprocessors are configured to execute the program instructions to furthercause the gateway system to: identify a current network associated withthe primary network subscription identifier; and dynamically update thecached list of networks based on identifying the current networkassociated with the primary network subscription identifier.
 4. Thegateway system of claim 1, wherein the one or more processors areconfigured to execute the program instructions to further cause thegateway system to: identify one or more supported networks of theprimary network subscription identifier; and dynamically update thecached list of networks based on identifying the one or more supportednetworks of the primary network subscription identifier.
 5. The gatewaysystem of claim 1, wherein the one or more processors are configured toexecute the program instructions to further cause the gateway system to:identify a group of network subscription identifiers comprising theprimary network subscription identifier; identify supported networks ofeach of the group of network subscription identifiers; and dynamicallyupdate the cached list of networks based on identifying the supportednetworks of each of the group of network subscription identifiers. 6.The gateway system of claim 1, wherein the cached list of networkscomprises one or more networks previously utilized by the primarynetwork subscription identifier.
 7. The gateway system of claim 1,wherein the cached list of networks is based at least in part on acarrier plan with a network carrier associated with the primary networksubscription identifier.
 8. The gateway system of claim 1, wherein theone or more processors are configured to execute the programinstructions to further cause the gateway system to: activate thegateway system on the network using the primary network subscriptionidentifier, and determine to switch the gateway system from the networkassociated with the primary network subscription identifier to thesecondary network associated with the secondary network subscriptionidentifier, wherein activating the gateway system on the secondarynetwork is based at least in part on determining to switch the gatewaysystem from the network associated with the primary network subscriptionidentifier to the secondary network associated with the secondarynetwork subscription identifier.
 9. The gateway system of claim 1,wherein to scan for other available networks, the one or more processorsare configured to execute the program instructions to further cause thegateway system to, while the gateway system is inactive on the network,scan for other available networks.
 10. The gateway system of claim 1,wherein the one or more processors are configured to execute the programinstructions to further determine one or more network characteristics ofthe network, wherein the one or more network characteristics comprisedata transmissibility, data transmission speed, signal strength, signalavailability, signal to noise ratio, or number of dropped calls ordropped communications, wherein determining that the network isavailable is based on the one or more network characteristics.
 11. Thegateway system of claim 1, wherein the one or more processors areconfigured to execute the program instructions to further cause thegateway system to: determine one or more network characteristics of thenetwork; and compare the one or more network characteristics with one ormore network thresholds, wherein determining that the network isavailable is based at least in part on comparing the one or more networkcharacteristics with the one or more network thresholds.
 12. The gatewaysystem of claim 1, wherein activating the gateway system on the networkis based on a network preference associated with the gateway system,wherein the network preference indicates which network subscriptionidentifier of a plurality of network subscription identifiers isprioritized over other network subscription identifiers of the pluralityof network subscription identifiers.
 13. The gateway system of claim 12,wherein the network preference is based at least in part on a locationof the gateway system or a prior activation of the gateway system on thenetwork.
 14. The gateway system of claim 1, wherein activating thegateway system on the network comprises activating the gateway system onthe network after disconnecting the gateway system from the secondarynetwork.
 15. The gateway system of claim 1, wherein the one or moreprocessors are configured to execute the program instructions to furthercause the gateway system, to: identify a vehicle metric, wherein thevehicle metric is associated with at least one of: cruise control,coasting, accelerator pedal, idling, anticipating, engine rotations perminute, motor rotations per minute, or motor power; determine thevehicle metric corresponds to a particular status, wherein the scan isbased on determining the vehicle metric corresponds to the particularstatus.
 16. The gateway system of claim 1, wherein the scan comprises: apassive scan; an active scan; a continuous scan; a periodic scan; or anaperiodic scan.
 17. The gateway system of claim 1, wherein the primarynetwork subscription identifier and the secondary network subscriptionidentifier are each associated with a same network provider.
 18. Thegateway system of claim 1, wherein the primary network subscriptionidentifier is associated with a first network provider and the secondarynetwork subscription identifier is associated with a second networkprovider.
 19. The gateway system of claim 1, wherein each of the primarynetwork subscription identifier and the secondary network subscriptionidentifier comprise a particular subscriber identification module card,a particular subscriber identification module profile, or a particularcarrier subscription.
 20. A computer-implemented method comprising:activating a gateway system on a secondary network using a secondarynetwork subscription identifier, wherein the gateway system comprises aprimary network subscription identifier and the secondary networksubscription identifier; accessing a cached list of networks of theprimary network subscription identifier; while the gateway system isactive on the secondary network, scanning for other available networks;based on the scan, determining that a network, from the cached list ofnetworks of the primary network subscription identifier, is available;and in response to determining the network is available: disconnectingthe gateway system from the secondary network; and connecting thegateway system on the network using the primary network subscriptionidentifier.